/// <summary>
        /// Save contact group
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveContactGroup(ContactGroupManageModel model)
        {
            ResponseModel response;

            var contactGroup = GetById(model.Id);

            if (contactGroup != null)
            {
                contactGroup.Name    = model.Name;
                contactGroup.Queries = model.Queries;
                contactGroup.Active  = model.Active;

                response = Update(contactGroup);
                if (response.Success)
                {
                    RefreshContactGroup((int)response.Data);
                }
                return(response.SetMessage(response.Success
                    ? T("ContactGroup_Message_UpdateSuccessfully")
                    : T("ContactGroup_Message_UpdateFailure")));
            }

            Mapper.CreateMap <ContactGroupManageModel, ContactGroup>();
            contactGroup = Mapper.Map <ContactGroupManageModel, ContactGroup>(model);

            response = Insert(contactGroup);
            if (response.Success)
            {
                RefreshContactGroup((int)response.Data);
            }
            return(response.SetMessage(response.Success
                ? T("ContactGroup_Message_CreateSuccessfully")
                : T("ContactGroup_Message_CreateFailure")));
        }
Example #2
0
        /// <summary>
        /// Save contact group, notification template and notification send time
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveNotificationConfiguration(NotificationConfigurationSetupModel model)
        {
            var notification = GetById(model.Id);

            if (notification != null)
            {
                // Save contact group
                if (!string.IsNullOrEmpty(model.ContactGroupName))
                {
                    var contactGroup = new ContactGroupManageModel
                    {
                        Name    = model.ContactGroupName,
                        Queries = notification.ContactQueries
                    };

                    _contactGroupService.SaveContactGroup(contactGroup);
                }

                // Save notification template
                if (!string.IsNullOrEmpty(model.NotificationTemplateName))
                {
                    var notificationTemplateManageModel = new NotificationTemplateManageModel
                    {
                        Name              = model.ContactGroupName,
                        Body              = notification.NotificationBody,
                        Subject           = notification.NotificationSubject,
                        Module            = notification.Module,
                        IsDefaultTemplate = false
                    };

                    _notificationTemplateService.SaveNotificationTemplate(notificationTemplateManageModel);
                }

                // Save notification send time and active record
                notification.SendTime = model.SendTime.HasValue ? model.SendTime : DateTime.UtcNow;
                notification.Active   = true;

                var response = Update(notification);

                return(response.Success
                    ? response.SetMessage(T("Notification_Message_SavingNotificationConfigrationSuccessfully"))
                    : response.SetMessage(T("Notification_Message_SavingNotificationConfigrationFailure")));
            }

            return(new ResponseModel
            {
                Success = false,
                Message = T("Notification_Message_ObjectNotFound")
            });
        }
        /// <summary>
        /// Update contact group data
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel UpdateContactGroupData(XEditableModel model)
        {
            var contactGroup = GetById(model.Pk);

            if (contactGroup != null)
            {
                var property =
                    ReflectionUtilities.GetAllPropertiesOfType(typeof(ContactGroupManageModel))
                    .FirstOrDefault(p => p.Name.Equals(model.Name, StringComparison.CurrentCultureIgnoreCase));
                if (property != null)
                {
                    object value = model.Value.ToType(property, WorkContext.CurrentTimezone);

                    #region Validate

                    var manageModel = new ContactGroupManageModel(contactGroup);
                    manageModel.SetProperty(model.Name, value);

                    var validationResults = manageModel.ValidateModel();

                    if (validationResults.Any())
                    {
                        return(new ResponseModel
                        {
                            Success = false,
                            Message = validationResults.BuildValidationMessages()
                        });
                    }

                    #endregion

                    contactGroup.SetProperty(model.Name, value);
                    var response = Update(contactGroup);
                    return(response.SetMessage(response.Success
                        ? T("ContactGroup_Message_UpdateCompanyInfoSuccessfully")
                        : T("ContactGroup_Message_UpdateCompanyInfoFailure")));
                }
                return(new ResponseModel
                {
                    Success = false,
                    Message = T("ContactGroup_Message_PropertyNotFound")
                });
            }

            return(new ResponseModel
            {
                Success = false,
                Message = T("ContactGroup_Message_ObjectNotFound")
            });
        }
        public ActionResult Create(ContactGroupManageModel model, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var response = _contactGroupService.SaveContactGroup(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    var id = (int)response.Data;
                    switch (submit)
                    {
                    case SubmitType.Save:
                        return(RedirectToAction("Index"));

                    default:
                        return(RedirectToAction("Edit", new { id }));
                    }
                }
            }
            return(View(model));
        }
        /// <summary>
        /// Add contact search to group
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel AddToGroup(AddToGroupModel model)
        {
            var contactGroupManageModel = new ContactGroupManageModel();

            var contactSearchModel  = SerializeUtilities.Deserialize <ContactSearchModel>(model.ContactSearchModel);
            var contactSearchModels = new List <ContactSearchModel>();

            switch (model.AddToGroupType)
            {
            case ContactGroupEnums.AddToGroupType.New:
                contactSearchModels.Add(contactSearchModel);

                contactGroupManageModel.Name    = model.Name;
                contactGroupManageModel.Queries = SerializeUtilities.Serialize(contactSearchModels);
                break;

            case ContactGroupEnums.AddToGroupType.Existing:
                var contactGroup = GetById(model.Id);
                if (contactGroup != null)
                {
                    contactSearchModels =
                        SerializeUtilities.Deserialize <List <ContactSearchModel> >(contactGroup.Queries);
                    contactSearchModels.Add(contactSearchModel);

                    contactGroupManageModel.Id      = contactGroup.Id;
                    contactGroupManageModel.Name    = contactGroup.Name;
                    contactGroupManageModel.Queries = SerializeUtilities.Serialize(contactSearchModels);
                    contactGroupManageModel.Active  = contactGroup.Active;
                }
                break;
            }

            var response = SaveContactGroup(contactGroupManageModel);

            return(response.SetMessage(response.Success
                ? T("ContactGroup_Message_AddToGroupSuccessfully")
                : T("ContactGroup_Message_AddToGroupFailure")));
        }
        public ActionResult Edit(ContactGroupManageModel model, string returnUrl, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var response = _contactGroupService.SaveContactGroup(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    switch (submit)
                    {
                    case SubmitType.Save:
                        if (!string.IsNullOrEmpty(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }
                        return(RedirectToAction("Index"));

                    default:
                        return(RedirectToAction("Edit", new { id = model.Id }));
                    }
                }
            }
            return(View(model));
        }