Quantcast
Channel: Customized Commerce 13 and earlier versions
Viewing all 9642 articles
Browse latest View live

Automapper custom resolver throws null exception in DependencyResolverInitialization.

$
0
0

Hi,

We are using AutoMapper in our Commerce site. While mapping from the custom model to an EPiServer Model(VariationContent) throws a below error. 

Adding to that vice versa works properly. Also  In version 10.2.1 works well, but not in 12.4.

I have mentioned the codes below with an error.

 cfg.CreateMap()
                    .ForMember(dest => dest.Orientation, opt => opt.Ignore())
                    .ForMember(dest => dest.Series, opt => opt.Ignore())
                     .ForMember(dest => dest.Tested, opt => opt.Ignore())
                    .ForMember(dest => dest.Rotation, opt => opt.Ignore())
                    .ForMember(dest => dest.Material, opt => opt.Ignore())
                    .IgnoreAllNonExistingProperties();
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Stack Trace: 
[NullReferenceException: Object reference not set to an instance of an object.]
   EPiServer.Commerce.Catalog.DataAnnotations.ValidUrlAttribute..ctor(LocalizationService localizationService, UrlSegmentOptions urlSegmentOptions) +67
   EPiServer.Commerce.Catalog.DataAnnotations.ValidUrlAttribute..ctor() +76
   System.RuntimeTypeHandle.CreateCaInstance(RuntimeType type, IRuntimeMethodInfo ctor) +0
   System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) +1471
   System.Reflection.CustomAttribute.GetCustomAttributes(RuntimePropertyInfo property, RuntimeType caType) +106
   System.Reflection.RuntimePropertyInfo.GetCustomAttributes(Boolean inherit) +37
   AutoMapper.Configuration.MappingExpression`2.Configure(TypeMap typeMap) +122
   AutoMapper.ProfileMap.BuildTypeMap(IConfigurationProvider configurationProvider, ITypeMapConfiguration config) +65
   AutoMapper.ProfileMap.Register(IConfigurationProvider configurationProvider) +75
   AutoMapper.MapperConfiguration.Seal() +151
   AutoMapper.MapperConfiguration..ctor(MapperConfigurationExpression configurationExpression) +764
   AutoMapper.MapperConfiguration..ctor(Action`1 configure) +23
   SnS.Infrastructure.DependencyResolverInitialization.GetMappingConfiguration() in D:\Phase13-upgrading\src\SnS\Infrastructure\DependencyResolverInitialization.cs:195
   SnS.Infrastructure.DependencyResolverInitialization.ConfigureContainer(ConfigurationExpression container) in D:\Phase13-upgrading\src\SnS\Infrastructure\DependencyResolverInitialization.cs:190
   StructureMap.PipelineGraph.Configure(Action`1 configure) +97
   StructureMap.Container.Configure(Action`1 configure) +93
   SnS.Infrastructure.DependencyResolverInitialization.ConfigureContainer(ServiceConfigurationContext context) in D:\Phase13-upgrading\src\SnS\Infrastructure\DependencyResolverInitialization.cs:70
   EPiServer.Framework.Initialization.Internal.<>c__DisplayClass4_0.b__0() +16
   EPiServer.Framework.Initialization.Internal.ModuleNode.Execute(Action a, String key) +52
   EPiServer.Framework.Initialization.Internal.ModuleNode.ConfigureContainer(ServiceConfigurationContext context) +100
   EPiServer.Framework.Initialization.InitializationEngine.ConfigureCurrentModules(Boolean final) +177
   EPiServer.Framework.Initialization.InitializationEngine.ExecuteTransition(Boolean continueTransitions) +115
   EPiServer.Framework.Initialization.InitializationEngine.Initialize() +40
   EPiServer.Framework.Initialization.<>c.b__7_0(InitializationEngine e) +9
   EPiServer.Framework.Initialization.InitializationModule.EngineExecute(HostType hostType, Action`1 engineAction) +338
   EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +170
   EPiServer.Global..ctor() +43
   SnS.EPiServerApplication..ctor() +42
   ASP.global_asax..ctor() in c:\Users\User\AppData\Local\Temp\Temporary ASP.NET Files\root\d16a9737\21107c38\App_global.asax.0.cs:0
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +119
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +83
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) +1117
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +124
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) +20
   System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) +59
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +287
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303
[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +772
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +195>>

Please help me out,

Advance thanks,

regards,

Karthik


Possibility to update the Primary Category on Product view in Catalog UI

$
0
0

Could you please take in consideration to provide the ability of editing Primary Category in CMS: Commerce -> Catalog in a similar way of
how Additional Categories are edited?

We have a client that has more products on categories and finding products inside a category in order to be able to move it to another category is very time consuming. If we use the search feature in Catalog it opens the product but we are not able to update the primary category directly on the product view.

In order to be able to change the primary category we need to search for the product code with Ctrl + F and scroll down until we are able to find the product.

Having the posibility to update the primary category directly from the product view will be of a real use for the business team.

Episerver nuget service down?

$
0
0

Trying to push a build to INTE and the nuget restore is failing. Site/service seems to be down.

Set an organization address as customer PreferredBillingAddress/PreferredShippingAddress not working

$
0
0

Hi

I am working with Commerce 12.15, I am trying to set the PreferredBillingAddress/PreferredShippingAddress for a customer. The problem I am facing is that when I try and set an organization address as a PreferredBillingAddress/PreferredShippingAddress, it gives me null. For example: 

The code below:

if (ddlMakeThisPrimary == "billing")
{
contact.PreferredBillingAddress = address;
contact.PreferredBillingAddressId = address.AddressId;
}
else if (ddlMakeThisPrimary == "shipping")
{
contact.PreferredShippingAddress = address;
contact.PreferredShippingAddressId = address.AddressId;
}

The lines in bold return a null even though an address is present. This is happening only when I try to assign an orgnization address as a PreferredBillingAddress/PreferredShippingAddress.

How to only allow show video and External link fields in Property URL

$
0
0

Hi,

i am use property Url but i just want to allow to show two options Video and Extarnal link

I try to use UIHINT but it seems to be not work

Can anyone have any solution to do that?

Thanks,

Thao Pham

RFC: Strange behaviour managing blocks / images

$
0
0

We are experiencing some behavior that we think is very strange.

Reproduce steps: 
* Create a new block somewhere in the "For All Sites" 
* Create a page "A" 
* Use the block in a content area on page "A" 
* Create a page "B" 
* Move the block used on page "A" inside the "For This Page" folder on page "B" 
* Delete page "B" 
* Run the Scheduled Job called "Remove Unrelated Content Assets" 
* The job will remove all blocks / images in "For This Page" for page "B" 
* The block is effectively removed from page "A" when running the "Remove Unrelated Content Assets" job

This is much better than the page crashing, but the behavior is quite strange. Why does EPiServer allow editors to move content used by page "A" into the folder "For This Page" on page "B" in the first place? It doesn't make any sense. That sounds like something that shouldn't be allowed to do. The scheduled job "Remove Unrelated Content Assets" will remove the block itself and from pages it was actually use.

What is the reasoning behind this? This sounds like a bug, as I can't think of any editors would want that to happen, and it's quite subtle.

Indexcontent.aspx throwing permissions error on latest version

$
0
0

While setting up Search on a v11 instance, I noticed that clicking "Index content" in the admin section throws a permissions error. There was one other forum post which hinted at the admin role being the cause of the issue, but I'm not really doing anything crazy for mapped roles. Just one named AD group and thats it.

Edit --> I should add that Im currently using ADFS for authentication, dont know if that matters. 

Has anyone else ran across this before? Below is the detailed error

The assembly or AppDomain that failed was:
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Security.SecurityException: Request for principal permission failed.
   at System.Security.Permissions.PrincipalPermission.ThrowSecurityException()
   at System.Security.Permissions.PrincipalPermission.Demand()
   at System.Security.PermissionSet.DemandNonCAS()
   at EPiServer.UI.Admin.IndexContent..ctor()
   at ASP.episerver_episerver_search_cms_indexcontent_aspx..ctor() in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\61a7374b\1e1d9993\App_Web_nea3ffuq.0.cs:line 0
   at __ASP.FastObjectFactory_app_web_nea3ffuq.Create_ASP_episerver_episerver_search_cms_indexcontent_aspx() in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\61a7374b\1e1d9993\App_Web_nea3ffuq.1.cs:line 0
   at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)
   at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.PrincipalPermission
The first permission that failed was:<IPermission class="System.Security.Permissions.PrincipalPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"><Identity Authenticated="true"
Role="WebAdmins"/><Identity Authenticated="true"
Role="Administrators"/></IPermission>
The demand was for:<IPermission class="System.Security.Permissions.PrincipalPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"><Identity Authenticated="true"
Role="WebAdmins"/><Identity Authenticated="true"
Role="Administrators"/></IPermission>

Strange behavior when editing links in TinyMCE

$
0
0

We have encountered some strange behavior when editing links in the TinyMCE editor. When creating a link using the "Page" radio button and entering "Remaining url" the information is not preserved correctly. The behavior is only reproducible inside a TinyMCE editor, not on Url properties.

It occurs on a freshly installed Alloy site with all the latest updates, namely:

Episerver 11.11, TinyMCE 2.7.1

How to reproduce:
1. In Cms Edit: open a page with a XhtmlString property (such as About us on Alloy)
2. Enter some text and select Insert link
3. Choose Page and select a page
4. Enter a value in Remaining Url
5. Publish

At this point the link works correctly

6. Reload Cms Edit window
7. Click Insert/edit

At this point the link is changed to External

8. Edit any part of the XhtmlString to trigger a Save then Publish


The link no longer works and instead looks something like on the public site: /EPiServer/CMS/Content/en/alloy-plan,,6/test?epieditmode=False&amp;epsremainingpath=test

Is this a known bug? Is there a workaround?


Type 'Episerver.Marketing.Connector.Framework.Data.EntityProfile' is not marked as serializable.

$
0
0

Hi,

I am facing the following problem. After an Episerver form (EPiServer.Forms.Implementation.Elements.FormContainerBlock) on a page is submitted and the page is reloaded, the following exception occurs:

[SerializationException: Type 'Episerver.Marketing.Connector.Framework.Data.EntityProfile' in Assembly 'Episerver.Marketing.Connector, Version=5.3.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.]
   System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +965
   System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +83
   System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) +238
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() +194
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) +711
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) +91
   System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +751
   System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +217
   System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2117
[HttpException (0x80004005): Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.]
   System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2274
   System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +50
   System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +758
   System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +291
   System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]& buf, Int32& length, Boolean compressionEnabled) +80
   System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +731
   System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +832
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +194
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +213
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +91

It seems that the cookie saved for tracking the user, based on the filled in form, is causing the issue: "mai_trk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Removing the cookie will make the website work again.

Could you help solving the issue?

Thanks.

Forms submit - 6 second or more delay

$
0
0

We have a client using Episerver Forms (4.23). When submitting the form there is a good six second minimum delay before the Thank You page loads. 

They are using the Marketing Connector for Salesforce. Is this just how long it takes? Is there any way to improve the experience outside of a loading gif?

TinyMCE custom styles not working inside PropertyList

$
0
0

I've a block, which holds a property list, and one of the property list properties is an XHtmlString, which invokes the TinyMCE control on the front end, but the list of styles that is present in the rest of the site's TinyMCE's are not present for the property list property.

Example with Screenshots:

Block has an XHtmlString property, TinyMCE has picked up the custom styles with no problems...

PropertyList on the Block... XHtmlString's TinyMCE has not picked up the custom styles. 

 

Is there special requirements for get TinyMCE to pick up the styles?

Max length of UrlSegment

$
0
0

Hi,

We're using EpiServer version 11.11.00 and (want to) rely on DefaultUrlSegmentCreator.Create to create a unique url segment on PageData for us. However, the suggestion will cut at 30 characters, and if so we do not get a unique suggestion. It simply returns the same UrlSegment.

We have created a workaround, but does anyone know if there is a way to get the DefaultUrlSegmentCreator to return a unique UrlSegment even if the length exceeds the maximum?

Apply order discount for specific user while signed in with another account e.g Customer Service

$
0
0

Hello

We are using Commerce 12.8.1

I'm looking for how to apply discounts for an order as a specific customer.

We are using built in order discounts at the moment, and the customer can apply for a discount without issues during the normal order flow.

My question is how to handle this when the order is opened by customer service after order completion, and items are changed in the placed order.

Is there a way to recalcualte discounts for the customer who placed the original order, and not use the context of the current signed in user? 

As I understand it, promotions are calcualted using the current user context? 

Best regards,

Ludvig Stenstrom

TemplateDescriptor not working on the integration server (DXC)

$
0
0

Episerver version: 11.10

I have created a customised FormContainerBlock that uses a controller with TemplateDescriptor.
(Based from https://www.luminary.com/blog/customising-episerver-forms )

Block:

[ContentType(DisplayName = "Form Container Block", GroupName = "Site 2")]
public class Site2FormContainerBlock : FormContainerBlock { }

Controller - the view bag values are getting set from the FormContainerBlockController

[TemplateDescriptor (AvailableWithoutTag = true, Default = true, ModelType = typeof(Site2FormContainerBlock), TemplateTypeCategory = TemplateTypeCategories.MvcPartialController)]
public class Site2FormContainerBlockController: FormContainerBlockController
{
    public override ActionResult Index(FormContainerBlock currentBlock)
   {
         //Call base index for the Client Resource registration but not the view
         //Not needed in case you manually render them in base controller
         base.Index(currentBlock);
        return PartialView("Site2FormContainerBlock", currentBlock);
    }
}


ALL is working well on my local machine.

However, when it had been deployed to the integration server (DXC), the site went straight to the Site2FormContainerBlock.cshtml (ignoring the controller). Thus, displaying an error message due to the ViewBag fields not being set.

Is there any server-side setting that could possibly override the TemplateDescriptor?

Also, when I've checked the Content Type Definition Settings in CMS > Admin > Content Types > Blocks > [Site 2 Form Container Block] > Settings, the controller "Site2FormContainerBlockController" has been listed TWICE under the MVC Dropdown.

Frequency of EpiServer Scheduler?

$
0
0

We have implemented a scheduled job that checks for new items in an external datasource and adds any new items to the Episerver Find Index. Since the external feed isn't updated very often this job takes <1s to run most of the time.

Even though the external datasource seldom updates it's important that new items are updated quickly and because of this we've tried to set a very high frequency on the scheduled job. At the moment we've tried running the job every 10-15 seconds. This however, isn't really working and most of the time the job runs around once per 70 seconds.

Is there any way to increase the frequency of the scheduler in EpiServer to allow for more frequent job execution?


Trigger ProcessPayment

$
0
0

We have implemented a custom payment provicer which works fine when buying with credit card.
We get an Authorization on the payment, and when entering commerce manager and release the shipment and setting the shipment as delivered it triggers a ProcessPayment on the PaymentGateway which makes a capture request to the payment provider for the credit, everything fine so far.

But we have some items that's doesn't need to be shipped, so i tried to set the shipment status as shipped from code as soon the payment is completed, but this doesn't trigger ProcessPayment. Even if i say cart.ProcessPayment my method doesn't seem to be invoked. 

Should I do this in some other way or is it another status I can set to call the payment gateway and make a capture request?

How to display the form elements horizontally in form container???

$
0
0

Hi Guys,

   I want to display the elements in horizontal way,can any one help me out of this???.Below code represent the form elements in vertical way

  Html.RenderElementsInStep(i, step.Elements)

  Thanks,

  Ramkee.G

Reloading Custom Data From Find Index

$
0
0

Hi guys, for a very complex search we've been indexing some custom .NET objects which we need to search on and to reload back as .NET objects. The searching works fine using the following guide https://world.episerver.com/documentation/developer-guides/find/NET-Client-API/Customizing-serialization/Including-fields/ but we are having problems re-loading the data. As an example I've thrown a simple example up on Alloy for replication.

Firstly on the ArticlePage type I have added the following extra properties/methods. The GetSomeField() should just be returning the standard Name field back.

[Ignore]
public string FindTestField { get; set; }
public string GetSomeField()
{
   return Name;
}
public void SetSomeField(string value)
{
   FindTestField = value;
}

We then have an initilization module with the following simple code

[ModuleDependency(typeof(IndexingModule))]
public class FindInitialization : IInitializableModule
{
   /// <inheritdoc />
   public void Initialize(InitializationEngine context)
   {
      SearchClient.Instance.Conventions
      .ForInstancesOf<ArticlePage>()
      .IncludeField(x => x.GetSomeField(),(x, value) => x.SetSomeField(value));
   }
   /// <inheritdoc />
   public void Uninitialize(InitializationEngine context)
   {
   }
}

Episerver Find is indexing this GetSomeField as expected with the correct data, however when doing a search with the following code

var eventPages = SearchClient.Instance.Search<ArticlePage>().GetContentResult();
var firstaPage = eventPages.Items.First();
var findFullname = firstaPage.FindTestField;

The findFullname variable is null? This is a simple example of what we're trying to do, in our real solution this is an IEnumerable of .NET objects but how to we re-serialize the objects back somewhere in the model. I've been looking at the code for the IncludeFieldCustom and Episerver own indexing of objects and can't figure it out.

Rescaling images and caching them in the azure blob?

$
0
0

I’m having a bit of trouble to get Image Processor to work in our site.

We are using this plugin: http://imageprocessor.org/imageprocessor-web/plugins/azure-blob-cache/

We get an error when we try to get an image rescaled: Image Processor Server cannot append header after HTTP headers have been sent.

Anyone else that has implemented any rescaling functions that caches the image in azure-blob-cache?

Regards
/Marcus

Notification emails

$
0
0

I’m trying to setup some notifications in our site and the notification is successfully being added to the bell icon in edit mode however we’re not receiving the notification email.

I’ve setting up content approvals as well to test the approval emails and we do receive the email notifications for approvals.

Does anyone know what we need to do to receive emails for the other notifications we’re setting up?


This is the code we’re using to create the notifications.

privateasyncvoid SendMessage(string message)
{
string[] usersInRole = Roles.GetUsersInRole("NotificationUsers");

INotificationUser notificationSender =new NotificationUser("NotificationUser");

List notificationReceivers = (from sUser in usersInRole
select System.Web.Security.Membership.GetUser(sUser)
into user
where user != null
selectnew NotificationUser(user.UserName))
.Cast().ToList();

await
this.Notifier.Service.PostNotificationAsync(
new NotificationMessage
{
ChannelName = Common.NotificationConstants.EmailChannel,
Content = message,
Subject ="Scheduled job",
Recipients = notificationReceivers,
Sender = notificationSender,
TypeName ="Monitor"
}
);
}

Thanks.

Viewing all 9642 articles
Browse latest View live