Example #1
0
        /// <summary>
        /// Save form default component field
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveFormDefaultComponentField(FormDefaultComponentFieldManageModel model)
        {
            ResponseModel response;
            var           formDefaultComponentField = GetById(model.Id);

            if (formDefaultComponentField != null)
            {
                formDefaultComponentField.FormDefaultComponentId = model.FormDefaultComponentId;
                formDefaultComponentField.Name        = model.Name;
                formDefaultComponentField.Attributes  = SerializeUtilities.Serialize(model.Attributes);
                formDefaultComponentField.RecordOrder = model.RecordOrder;
                response = Update(formDefaultComponentField);
                return(response.SetMessage(response.Success
                    ? T("FormDefaultComponentField_Message_UpdateSuccessfully")
                    : T("FormDefaultComponentField_Message_UpdateFailure")));
            }

            formDefaultComponentField = new FormDefaultComponentField
            {
                FormDefaultComponentId = model.FormDefaultComponentId,
                Name        = model.Name,
                Attributes  = SerializeUtilities.Serialize(model.Attributes),
                RecordOrder = model.RecordOrder
            };
            response = Insert(formDefaultComponentField);
            return(response.SetMessage(response.Success
                ? T("FormDefaultComponentField_Message_CreateSuccessfully")
                : T("FormDefaultComponentField_Message_CreateFailure")));
        }
Example #2
0
        /// <summary>
        /// Save template
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveTemplateManageModel(WidgetTemplateManageModel model)
        {
            ResponseModel response;
            var           template = GetById(model.Id);

            if (template != null)
            {
                var log = new WidgetTemplateLogManageModel(template);
                template.Name        = model.Name;
                template.Widgets     = SerializeUtilities.Serialize(model.Shortcuts);
                template.Content     = model.Content;
                template.Style       = model.Style;
                template.Script      = model.Script;
                template.FullContent = GetFullTemplate(model);

                response = Update(template);
                if (response.Success)
                {
                    _templateLogService.SaveTemplateLog(log);
                }
                return(response.SetMessage(response.Success
                    ? T("WidgetTemplate_Message_UpdateSuccessfully")
                    : T("WidgetTemplate_Message_UpdateFailure")));
            }
            Mapper.CreateMap <WidgetTemplateManageModel, WidgetTemplate>();
            template             = Mapper.Map <WidgetTemplateManageModel, WidgetTemplate>(model);
            template.FullContent = GetFullTemplate(model);
            response             = CreateTemplate(template);
            return(response.SetMessage(response.Success
                ? T("WidgetTemplate_Message_CreateSuccessfully")
                : T("WidgetTemplate_Message_CreateFailure")));
        }
Example #3
0
        /// <summary>
        /// Save site setup
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveCompanySetupModel(CompanySetupModel model)
        {
            ResponseModel response;
            var           setting = _siteSettingRepository.FetchFirst(s => s.Name.Equals(SettingNames.CompanySetupSetting));

            if (setting == null)
            {
                setting = new SiteSetting
                {
                    Name        = SettingNames.CompanySetupSetting,
                    Description = SettingNames.CompanySetupSetting,
                    Value       = SerializeUtilities.Serialize(model),
                    SettingType = "system"
                };

                response = _siteSettingRepository.Insert(setting);
            }
            else
            {
                setting.Value = SerializeUtilities.Serialize(model);
                response      = _siteSettingRepository.Update(setting);
            }

            return(response);
        }
        /// <summary>
        /// Post status
        /// </summary>
        /// <param name="model"></param>
        /// <param name="network"></param>
        /// <returns></returns>
        public ResponseModel Post(SocialMessageModel model, SocialMediaEnums.SocialNetwork network)
        {
            try
            {
                var token = GetActiveTokenOfSocialMedia(network);

                if (token != null)
                {
                    object response       = null;
                    var    authorizeModel = new SocialMediaResponseModel
                    {
                        AppId             = token.AppId,
                        AppSecret         = token.AppSecret,
                        AccessToken       = token.AccessToken,
                        AccessTokenSecret = token.AccessTokenSecret
                    };

                    switch (network)
                    {
                    case SocialMediaEnums.SocialNetwork.Facebook:
                        response = SocialUtilities.PostFacebookStatus(authorizeModel, model);
                        break;

                    case SocialMediaEnums.SocialNetwork.Twitter:
                        response = SocialUtilities.PostTwitterStatus(authorizeModel, model);
                        break;

                    case SocialMediaEnums.SocialNetwork.LinkedIn:
                        response = SocialUtilities.PostLinkedInStatus(authorizeModel, model);
                        break;
                    }

                    var responseResult = string.Empty;
                    if (response != null)
                    {
                        responseResult = SerializeUtilities.Serialize(response);
                    }

                    return(new ResponseModel
                    {
                        Success = true,
                        Data = responseResult
                    });
                }

                return(new ResponseModel
                {
                    Success = false,
                    Message = T("SocialMediaToken_Message_ObjectNotFound")
                });
            }
            catch (Exception exception)
            {
                return(new ResponseModel(exception));
            }
        }
Example #5
0
        public SubscriptionManageModel(Page page)
            : this()
        {
            var parameterModel = new SubscriptionPageParameterModel(page);

            Parameters = SerializeUtilities.Serialize(parameterModel);

            Module           = SubscriptionEnums.SubscriptionModule.Page;
            SubscriptionType = SubscriptionEnums.SubscriptionType.Midnight;
        }
Example #6
0
        /// <summary>
        /// Get url request
        /// </summary>
        /// <param name="url"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string PostRequest(string url, object data)
        {
            using (var client = new WebClient())
            {
                client.Headers.Add("Content-Type", "application/json");
                var dataString = SerializeUtilities.Serialize(data);

                return(client.UploadString(url, dataString));
            }
        }
Example #7
0
        /// <summary>
        /// Get default components
        /// </summary>
        /// <returns></returns>
        private string GetDefaultFormComponents()
        {
            var components = _formDefaultComponentRepository.GetAll().ToList();
            var data       = components.Select(c => new FormData
            {
                title    = c.Name,
                template = c.FormComponentTemplate.Name,
                fields   = GetFields(c.FormDefaultComponentFields)
            });

            return(SerializeUtilities.Serialize(data));
        }
Example #8
0
        public string GetGridSettings(string name)
        {
            var setting = _userService.GetUserGridSetting(WorkContext.CurrentUser.Id, name);

            if (setting == null)
            {
                setting = new GridSettingItem
                {
                    Name    = name,
                    Columns = new List <ColumnSetting>()
                };
            }
            return(SerializeUtilities.Serialize(setting).RemoveNewLine());
        }
Example #9
0
        /// <summary>
        /// Save contact group to notification
        /// </summary>
        /// <param name="model"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public ContactStatisticModel SaveContactGroup(ContactGroupSetupModel model, out string message)
        {
            var notification = GetById(model.Id);

            if (notification != null)
            {
                // Deserialize contact queries string in notification model to object
                var contactSearchModels = string.IsNullOrEmpty(notification.ContactQueries)
                    ? new List <ContactSearchModel>()
                    : SerializeUtilities.Deserialize <List <ContactSearchModel> >(notification.ContactQueries);

                // Number of contacts before new queries is added
                var totalExistingContacts = _contactService.SearchContacts(contactSearchModels).Count();

                // Add new queries
                contactSearchModels.Add(model.ContactSearchModel);

                // Number of contact after new queries is added
                var totalContactsAfterAdded = _contactService.SearchContacts(contactSearchModels).Count();

                // Number of contact in new queries
                var totalNewContactsExpected = _contactService.SearchContacts(model.ContactSearchModel).Count();

                // Serialize contact queries and assign to notification model
                notification.ContactQueries = SerializeUtilities.Serialize(contactSearchModels);

                // Save new notification
                var response = Update(notification);
                if (response.Success)
                {
                    message = string.Format("{0} duplicated contact(s). {1} contact(s) added successfully.",
                                            totalNewContactsExpected + totalExistingContacts - totalContactsAfterAdded,
                                            totalContactsAfterAdded - totalExistingContacts);

                    return(new ContactStatisticModel
                    {
                        ExistedContacts = totalNewContactsExpected + totalExistingContacts - totalContactsAfterAdded,
                        NewContacts = totalContactsAfterAdded - totalExistingContacts,
                        TotalContacts = totalContactsAfterAdded,
                        ContactSearchDetailsModel = new ContactSearchDetailsModel(model.ContactSearchModel)
                    });
                }

                message = T("Notification_Message_SavingContactGroupFailure");
                return(null);
            }
            message = T("Notification_Message_ObjectNotFound");
            return(null);
        }
Example #10
0
        /// <summary>
        /// Count contacts
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel CountContacts(ContactSearchModel model)
        {
            var notification = GetById(model.NotificationId);

            if (notification != null)
            {
                // Deserialize contact queries string in notification model to object
                var contactSearchModels = string.IsNullOrEmpty(notification.ContactQueries)
                    ? new List <ContactSearchModel>()
                    : SerializeUtilities.Deserialize <List <ContactSearchModel> >(notification.ContactQueries);

                // Number of contacts before new queries is added
                var totalExistingContacts = _contactService.SearchContacts(contactSearchModels).Count();

                // Add new queries
                contactSearchModels.Add(model);

                // Number of contact after new queries is added
                var totalContactsAfterAdded = _contactService.SearchContacts(contactSearchModels).Count();

                // Number of contact in new queries
                var totalNewContactsExpected = _contactService.SearchContacts(model).Count();

                // Serialize contact queries and assign to notification model
                notification.ContactQueries = SerializeUtilities.Serialize(contactSearchModels);

                var contactStatistic = new ContactStatisticModel
                {
                    ExistedContacts = totalNewContactsExpected + totalExistingContacts - totalContactsAfterAdded,
                    NewContacts     = totalContactsAfterAdded - totalExistingContacts,
                    TotalContacts   = totalContactsAfterAdded
                };

                var response = new ResponseModel
                {
                    Success = true,
                    Data    = contactStatistic
                };

                return(response);
            }

            return(new ResponseModel
            {
                Success = false,
                Message = T("Notification_Message_ObjectNotFound")
            });
        }
Example #11
0
        /// <summary>
        /// Create email queue
        /// </summary>
        /// <param name="emailLog"></param>
        /// <param name="useDefaultAccount"></param>
        /// <returns></returns>
        public ResponseModel CreateEmail(EmailLog emailLog, bool useDefaultAccount = false)
        {
            if (useDefaultAccount || emailLog.EmailAccountId == 0)
            {
                var defaultAccount = _emailAccountService.GetDefaultAccount();
                if (defaultAccount == null)
                {
                    defaultAccount = _emailAccountService.GetAll().FirstOrDefault();
                    if (defaultAccount == null)
                    {
                        return new ResponseModel
                               {
                                   Success = false,
                                   Message = T("EmailLog_Message_MissingDefaultAccount")
                               }
                    }
                    ;
                }

                if (string.IsNullOrEmpty(emailLog.From))
                {
                    emailLog.From = defaultAccount.Email;
                }
                if (string.IsNullOrEmpty(emailLog.FromName))
                {
                    emailLog.FromName = defaultAccount.Email;
                }
                emailLog.EmailAccountId = defaultAccount.Id;
            }

            var logs = new List <EmailSendingLog>
            {
                new EmailSendingLog
                {
                    Time    = DateTime.Now,
                    Message = TFormat("EmailLog_Message_CreateEmailLog", DateTime.UtcNow)
                }
            };

            emailLog.Message = SerializeUtilities.Serialize(logs);

            var response = Insert(emailLog);

            return(response.SetMessage(response.Success
                ? T("EmailLog_Message_CreateSuccessfully")
                : T("EmailLog_Message_CreateFailure")));
        }
Example #12
0
        /// <summary>
        /// Get tab configurations
        /// </summary>
        /// <returns></returns>
        private string GetTabConfigurations()
        {
            var tabs =
                _formTabRepository.GetAll().Include(t => t.FormComponents.Select(c => c.FormComponentFields)).ToList();
            var data = tabs.Select(t => new FormTabModel
            {
                title = t.Name,
                data  = t.FormComponents.Select(c => new FormData
                {
                    title    = c.Name,
                    template = c.FormComponentTemplate.Name,
                    fields   = GetFields(c.FormComponentFields)
                })
            });

            return(SerializeUtilities.Serialize(data));
        }
Example #13
0
        public override void Initialize(DbContext ezDbContext)
        {
            EzCMSEntities dbContext = ezDbContext as EzCMSEntities;

            if (dbContext != null)
            {
                var setting       = GetSetup().DefaultValue;
                var settingString = SerializeUtilities.Serialize(setting);
                var insertSetting = new SiteSetting
                {
                    Name        = GetSetup().Name,
                    Description = GetSetup().Description,
                    Value       = settingString,
                    SettingType = GetSetup().SettingType
                };
                dbContext.SiteSettings.AddIfNotExist(i => i.Name, insertSetting);
            }
        }
Example #14
0
 /// <summary>
 /// Get widget template widgets
 /// </summary>
 /// <param name="widgetSetup"></param>
 /// <returns></returns>
 public static string GetTemplateWidgets(WidgetSetupModel widgetSetup)
 {
     try
     {
         var folder  = string.Format("{0}.{1}.Widgets", DataSetupResourceType.WidgetTemplate.GetEnumName(), widgetSetup.Widget);
         var widgets = GetAllResourcesInFolder(folder).Select(r => new WidgetTemplate
         {
             Name    = r.Name.Replace(".cshtml", string.Empty),
             Content = r.Content
         }).ToList();
         return(SerializeUtilities.Serialize(widgets));
     }
     catch (ArgumentException)
     {
         // No folder
         return(string.Empty);
     }
 }
Example #15
0
 public JsonResult Contact(ContactModel model)
 {
     if (ModelState.IsValid)
     {
         var formModel = new FormModel()
         {
             FormTypeID      = FormType.Contact,
             Data            = SerializeUtilities.Serialize(model),
             EmailBodyString = RenderRazorViewToString("Contact", model)
         };
         var respone = _formServices.SaveForm(formModel);
         if (respone)
         {
             return(Json(new { success = true }));
         }
     }
     return(Json(new { success = false }));
 }
Example #16
0
 public JsonResult Advisory(AdvisoryModel model)
 {
     if (ModelState.IsValid)
     {
         var formModel = new FormModel()
         {
             FormTypeID      = FormType.Advisory,
             Data            = SerializeUtilities.Serialize(model),
             EmailBodyString = RenderRazorViewToString("Advisory", model)
         };
         var respone = _formServices.SaveForm(formModel);
         if (respone)
         {
             return(Json(new { success = true, idfield = "tuvan" }));
         }
     }
     return(Json(new { success = false }));
 }
        /// <summary>
        /// Save group settings
        /// </summary>
        /// <param name="model">the group setting model</param>
        /// <returns></returns>
        public ResponseModel SaveGroupSettings(GroupManageSettingModel model)
        {
            var group = GetById(model.Id);

            if (group != null)
            {
                group.Settings = SerializeUtilities.Serialize(model.GroupSettingModel);
                var response = Update(group);

                return(response.SetMessage(response.Success
                    ? T("RotatingImageGroup_Message_UpdateSuccessfully")
                    : T("RotatingImageGroup_Message_UpdateFailure")));
            }
            return(new ResponseModel
            {
                Success = false,
                Message = T("RotatingImageGroup_Message_ObjectNotFound")
            });
        }
Example #18
0
        public JsonResult GoogleAnalyticApiSetup(GoogleAnalyticApiSetting model)
        {
            if (ModelState.IsValid)
            {
                var setting = _siteSettingService.GetSetting(model.GetSetup().Name);

                var manageModel = _siteSettingService.GetSettingManageModel(setting.Id);
                manageModel.Value = SerializeUtilities.Serialize(model);

                var response = _siteSettingService.SaveSettingManageModel(manageModel);

                return(Json(response));
            }

            return(Json(new ResponseModel
            {
                Success = false,
                Message = ModelState.BuildValidationMessages()
            }));
        }
Example #19
0
        public ActionResult Edit(SiteSettingManageModel model, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var setting       = _siteSettingService.GetSetting(model.SettingName);
                var updateSuccess = true;

                var settingParser = HostContainer.GetInstances <IComplexSetting>().FirstOrDefault(parser => parser.GetSetup().Name.Equals(setting.Name));
                if (settingParser != null)
                {
                    if (TryUpdateModel((dynamic)settingParser))
                    {
                        model.Value = SerializeUtilities.Serialize(settingParser);
                    }
                    else
                    {
                        updateSuccess = false;
                    }
                }

                if (updateSuccess)
                {
                    var response = _siteSettingService.SaveSettingManageModel(model);
                    SetResponseMessage(response);
                    if (response.Success)
                    {
                        switch (submit)
                        {
                        case SubmitType.Save:
                            return(RedirectToAction("Index"));

                        default:
                            return(RedirectToAction("Edit", new { id = model.Id }));
                        }
                    }
                }
                SetErrorMessage(T("SiteSetting_Message_UpdateFailure"));
                return(RedirectToAction("Edit", new { id = model.Id }));
            }
            return(View(model));
        }
Example #20
0
        /// <summary>
        /// Load setting
        /// </summary>
        /// <returns></returns>
        public virtual T LoadSetting <T>()
        {
            var settingService = HostContainer.GetInstance <IEzSiteSettingService>();
            var settingString  = settingService.GetSetting <string>(GetSetup().Name);

            if (string.IsNullOrEmpty(settingString))
            {
                var setting = GetSetup().DefaultValue;
                settingString = SerializeUtilities.Serialize(setting);
                settingService.InsertSetting(new SiteSetting
                {
                    Name        = GetSetup().Name,
                    Description = GetSetup().Description,
                    Value       = settingString,
                    SettingType = GetSetup().SettingType
                });
                return(setting);
            }

            return(SerializeUtilities.Deserialize <T>(settingString));
        }
Example #21
0
        /// <summary>
        /// Initialize default languages
        /// </summary>
        public void Initialize(DbContext ezContext)
        {
            var context = ezContext as EzCMSEntities;

            if (context != null)
            {
                var dbContext = new EzCMSEntities();

                var availableTools           = EnumUtilities.GetAllItems <EditorTool>().Select(t => t.ToString());
                var availableToolsJsonString = SerializeUtilities.Serialize(availableTools);
                var toolbar = new Toolbar
                {
                    Name         = "Default Toolbar",
                    IsDefault    = true,
                    BasicToolbar = availableToolsJsonString,
                    PageToolbar  = availableToolsJsonString
                };

                dbContext.Toolbars.AddIfConditionInvalid(t => t.IsDefault, toolbar);
                dbContext.SaveChanges();
            }
        }
Example #22
0
        /// <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")));
        }
Example #23
0
        /// <summary>
        /// Generate subscription model
        /// </summary>
        /// <param name="module"></param>
        /// <param name="email"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public SubscriptionWidget GenerateSubscription(SubscriptionEnums.SubscriptionModule module, string email,
                                                       dynamic parameters)
        {
            var model = new SubscriptionWidget();

            if (parameters == null)
            {
                return(model);
            }

            model.Parameters = SerializeUtilities.Serialize(parameters);
            model.Module     = module;
            model.Email      = email;

            // Check subscription existed or not
            var currentSubscription = GetSubscription(module, email, parameters);

            if (currentSubscription != null)
            {
                model.Id = currentSubscription.Id;
            }

            return(model);
        }
Example #24
0
 public NotificationInitializeModel(NotificationEnums.NotificationModule module, dynamic parameters)
     : this()
 {
     Module     = module;
     Parameters = SerializeUtilities.Serialize(parameters);
 }
Example #25
0
 public AddToGroupModel(ContactSearchModel contactSearchModel)
     : this()
 {
     ContactSearchModel = SerializeUtilities.Serialize(contactSearchModel);
 }
Example #26
0
        /// <summary>
        /// Initialize default settings
        /// </summary>
        public void Initialize(DbContext ezContext)
        {
            var context = ezContext as EzCMSEntities;

            if (context != null)
            {
                if (!context.FormTabs.Any())
                {
                    var now = DateTime.UtcNow;

                    #region Save Templates

                    var embeddedResources = DataInitializeHelper.GetAllResourcesInFolder("FormBuilder.Components",
                                                                                         DataSetupResourceType.Others);

                    foreach (var embeddedResource in embeddedResources)
                    {
                        var formComponentTemplate = new FormComponentTemplate
                        {
                            Name    = Path.GetFileNameWithoutExtension(embeddedResource.Name),
                            Content = embeddedResource.Content
                        };
                        context.FormComponentTemplates.AddEntities(formComponentTemplate);
                    }
                    context.SaveChanges();

                    #endregion

                    #region Save Tabs

                    var setup = DataInitializeHelper.GetResourceContent("FormBuilder.Tabs.json", DataSetupResourceType.Others);
                    var tabs  = SerializeUtilities.Deserialize <List <FormTabModel> >(setup);

                    var tabOrder = 0;
                    foreach (var item in tabs)
                    {
                        tabOrder += 10;
                        var tab = new FormTab
                        {
                            Name        = item.title,
                            RecordOrder = tabOrder,
                            Created     = now,
                            CreatedBy   = FrameworkConstants.DefaultMigrationAccount
                        };

                        var componentOrder = 0;
                        foreach (var data in item.data)
                        {
                            // Get templates for component
                            var formComponentTemplate = context.FormComponentTemplates.First(t => t.Name.Equals(data.template));

                            componentOrder += 10;
                            var component = new FormComponent
                            {
                                FormTab = tab,
                                FormComponentTemplate = formComponentTemplate,
                                Name        = data.title,
                                RecordOrder = componentOrder,
                                Created     = now,
                                CreatedBy   = FrameworkConstants.DefaultMigrationAccount
                            };

                            if (data.fields != null && data.fields.Keys.Any())
                            {
                                var fieldOrder = 0;
                                foreach (var field in data.fields)
                                {
                                    fieldOrder += 10;
                                    var formField = new FormComponentField
                                    {
                                        FormComponent = component,
                                        Name          = field.Key,
                                        Attributes    = SerializeUtilities.Serialize(field.Value),
                                        RecordOrder   = fieldOrder,
                                        Created       = now,
                                        CreatedBy     = FrameworkConstants.DefaultMigrationAccount
                                    };

                                    context.FormComponentFields.AddEntities(formField);
                                }
                            }
                            else
                            {
                                context.FormComponents.AddEntities(component);
                            }
                        }
                    }

                    #endregion

                    #region Save Default Form components

                    var componentsSetup       = DataInitializeHelper.GetResourceContent("FormBuilder.DefaultFormComponents.json", DataSetupResourceType.Others);
                    var defaultFormComponents = SerializeUtilities.Deserialize <List <FormData> >(componentsSetup);

                    var defaultComponentOrder = 0;
                    foreach (var data in defaultFormComponents)
                    {
                        defaultComponentOrder += 10;

                        // Get template for component
                        var formComponentTemplate = context.FormComponentTemplates.First(t => t.Name.Equals(data.template));

                        var component = new FormDefaultComponent
                        {
                            FormComponentTemplate = formComponentTemplate,
                            Name        = data.title,
                            RecordOrder = defaultComponentOrder,
                            Created     = now,
                            CreatedBy   = FrameworkConstants.DefaultMigrationAccount
                        };

                        if (data.fields != null && data.fields.Keys.Any())
                        {
                            var fieldOrder = 0;
                            foreach (var field in data.fields)
                            {
                                fieldOrder += 10;
                                var formField = new FormDefaultComponentField
                                {
                                    FormDefaultComponent = component,
                                    Name        = field.Key,
                                    Attributes  = SerializeUtilities.Serialize(field.Value),
                                    RecordOrder = fieldOrder,
                                    Created     = now,
                                    CreatedBy   = FrameworkConstants.DefaultMigrationAccount
                                };

                                context.FormDefaultComponentFields.AddEntities(formField);
                            }
                        }
                        else
                        {
                            context.FormDefaultComponents.AddEntities(component);
                        }
                    }
                    #endregion

                    context.SaveChanges();
                }
            }
        }
Example #27
0
 public SubscriptionLogManageModel(SubscriptionEnums.SubscriptionModule module, dynamic parameters) : this()
 {
     Module     = module;
     Parameters = SerializeUtilities.Serialize(parameters);
 }
Example #28
0
        public void Run(BackgroundTaskExecuteContext context)
        {
            var logger = HostContainer.GetInstance <ILogger>();

            if (Interlocked.CompareExchange(ref _hasActiveTask, 1, 0) == 0)
            {
                var countEmails = 0;
                try
                {
                    // Update the background task last running time
                    var backgroundTaskService = HostContainer.GetInstance <IEzBackgroundTaskService>();
                    backgroundTaskService.UpdateLastRunningTimeTask(GetType());

                    var emailLogService     = HostContainer.GetInstance <IEmailLogService>();
                    var emailAccountService = HostContainer.GetInstance <IEmailAccountService>();
                    var emailAccounts       = emailAccountService.GetAll().ToList();
                    var emailLogs           = emailLogService.GetEmailSendingQueues();
                    countEmails = emailLogs.Count();
                    foreach (var emailLog in emailLogs)
                    {
                        var emailAccount = emailAccounts.FirstOrDefault(e => e.Id == emailLog.EmailAccountId);
                        if (emailAccount != null)
                        {
                            var emailSetting = new EmailSetting
                            {
                                Host      = emailAccount.Host,
                                Port      = emailAccount.Port,
                                User      = emailAccount.Username,
                                Password  = emailAccount.Password,
                                EnableSsl = emailAccount.EnableSsl,
                                Timeout   = emailAccount.TimeOut
                            };
                            var mailUtilities = new MailUtilities(emailSetting);
                            var logs          = new List <EmailSendingLog>();
                            try
                            {
                                if (!string.IsNullOrEmpty(emailLog.Message))
                                {
                                    logs = SerializeUtilities.Deserialize <List <EmailSendingLog> >(emailLog.Message);
                                }

                                mailUtilities.SendEmail(emailLog.From ?? emailAccount.Email, emailLog.FromName ?? emailAccount.DisplayName, emailLog.To, emailLog.CC, emailLog.Bcc,
                                                        true, emailLog.Subject, emailLog.Body);
                                emailLog.SentOn = DateTime.UtcNow;

                                logs.Add(new EmailSendingLog
                                {
                                    Time    = DateTime.Now,
                                    Message = string.Format("Mail sent at {0} UTC Time", DateTime.UtcNow)
                                });
                            }
                            catch (Exception exception)
                            {
                                logs.Add(new EmailSendingLog
                                {
                                    Time    = DateTime.Now,
                                    Message = string.Format("Error: {0}", exception.Message)
                                });
                            }

                            emailLog.SentTries++;
                            emailLog.Message = SerializeUtilities.Serialize(logs);
                            emailLogService.UpdateMail(emailLog);
                        }
                    }
                }
                catch (Exception exception)
                {
                    logger.Error(string.Format("[{0}]", EzCMSContants.EmailTaskName), exception);
                }
                if (countEmails > 0)
                {
                    logger.Info(string.Format("[{0}] Send {1} email(s) in queues", EzCMSContants.EmailTaskName, countEmails));
                }
                Interlocked.Exchange(ref _hasActiveTask, 0);
            }
        }
Example #29
0
        /// <summary>
        /// Execute the background task
        /// </summary>
        /// <param name="context"></param>
        public void Run(BackgroundTaskExecuteContext context)
        {
            var logger = HostContainer.GetInstance <ILogger>();

            if (Interlocked.CompareExchange(ref _hasActiveTask, 1, 0) == 0)
            {
                var countNotifications = 0;
                var countContacts      = 0;
                try
                {
                    // Update the background task last running time
                    var backgroundTaskService = HostContainer.GetInstance <IEzBackgroundTaskService>();
                    backgroundTaskService.UpdateLastRunningTimeTask(GetType());

                    var notificationService = HostContainer.GetInstance <INotificationService>();
                    var contactGroupService = HostContainer.GetInstance <IContactGroupService>();
                    var emailLogService     = HostContainer.GetInstance <IEmailLogService>();

                    // Get in queue notifications
                    var notifications = notificationService.GetNotificationQueues().ToList();
                    countNotifications = notifications.Count;

                    foreach (var notification in notifications)
                    {
                        var notificationTemplate = new NotificationTemplate
                        {
                            Subject = notification.NotificationSubject,
                            Body    = notification.NotificationBody
                        };

                        // Get contacts from contact group in notification
                        var contacts = contactGroupService.GetContacts(notification.ContactQueries).ToList();
                        countContacts = contacts.Count;

                        // Save found contacts
                        var notifiedContactModels = contacts.Select(contact => new NotifiedContactModel(contact)).ToList();
                        notification.NotifiedContacts = SerializeUtilities.Serialize(notifiedContactModels);
                        notificationService.UpdateNotification(notification);

                        // Loop through notification email model to get the final html to send
                        foreach (var contact in contacts)
                        {
                            var emailBody = string.Empty;
                            switch (notification.Module)
                            {
                            case NotificationEnums.NotificationModule.Page:
                                emailBody = GetPageNotificationEmailContent(notification, notificationTemplate, contact);
                                break;
                            }

                            // Create email in email queue, ready to be sent
                            var response = emailLogService.CreateEmail(new EmailLog
                            {
                                To        = contact.Email,
                                ToName    = contact.FullName,
                                Subject   = notificationTemplate.Subject,
                                Body      = emailBody,
                                SendLater = notification.SendTime
                            });

                            // Deactive notification if email queue created successfully
                            if (response.Success)
                            {
                                notificationService.DeactiveNotification(notification);
                            }
                        }
                    }
                }
                catch (Exception exception)
                {
                    logger.Error(string.Format("[{0}]", EzCMSContants.NotificationTaskName), exception);
                }

                if (countContacts > 0)
                {
                    logger.Info(string.Format("[{0}] Send {1} notification(s) to {2} contact(s)", EzCMSContants.NotificationTaskName, countNotifications, countContacts));
                }

                Interlocked.Exchange(ref _hasActiveTask, 0);
            }
        }