protected override async Task ActionAsync() { var siteId = Input.Data.Site.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, siteId); var itemDataModel = await SaveFreeCommand.SaveItemDataModelAsync <NewsBusinessModel>(_dataFactory, Input.Data, Input.UserId, "News"); var freeBusinessModel = (NewsBusinessModel)itemDataModel.Data; freeBusinessModel.DisplayMode = Input.Data.DisplayMode; freeBusinessModel.NumberItemPerPage = Input.Data.NumberItemPerPage; await _dataFactory.SaveChangeAsync(); await _cacheProvider.UpdateCacheAsync(siteId); Result.Data = new ExpandoObject(); Result.Data.Master = await _moduleManager.GetMasterAsync(Input.Data.Site); var roots = _newsBusinessModule.GetRootMetadata(new GetRootMetaDataInput { ItemDataModel = itemDataModel, DataFactory = _dataFactory }); Result.Data.Url = RouteManager.GetPath(NewsBusinessModule.Url, roots); }
protected override async Task ActionAsync() { var siteId = Input.Data.Site.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, siteId); var itemDataModel = await SaveFreeCommand.SaveItemDataModelAsync <NotificationItemBusinessModel>(_dataFactory, Input.Data, Input.UserId, NotificationItemBusinessModule.ModuleName); var isNew = string.IsNullOrEmpty(itemDataModel.Id); await _dataFactory.SaveChangeAsync(); await _cacheProvider.UpdateCacheAsync(siteId); GetNewsItemResult newsItemResult = null; if (isNew) { newsItemResult = await GetNewsItemCommand.GetNewsItemResult(_dataFactory, _userService, itemDataModel, Input.UserId); } Result.Data = new { NewsItem = newsItemResult }; }
protected override async Task ActionAsync() { var _siteId = Input.Data.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, _siteId); // var notificationDb = await GetAsync<NotificationBusinessModel>(_siteId, _siteId, NotificationBusinessModule.ModuleName, "Notification"); var notificationItemDb = await SaveFreeCommand.SaveItemDataModelAsync <NotificationItemBusinessModel>(_dataFactory, Input.Data.Data, Input.UserId, NotificationItemBusinessModule.ModuleName); var elements = await SaveFreeCommand.GetElementsAsync(_dataFactory, notificationItemDb, Input.Data.Data.Elements); // On enregistre l'element var freeBusinessModel = (NotificationItemBusinessModel)notificationItemDb.Data; freeBusinessModel.Elements = elements; await _dataFactory.SaveChangeAsync(); var siteInfo = await SiteMap.SiteUrlAsync(_routeManager, _dataFactory, _siteId); var userDb = await _userService.FindApplicationUserByIdAsync(Input.UserId); foreach (var siteUserId in Input.Data.SiteUserIds) { var siteUserDb = await _siteUserService.FindAsync(siteUserId); await SendEmailAsync(siteInfo, _emailService, siteUserDb, userDb, elements, _siteId); } }
protected override async Task ActionAsync() { var siteId = Input.Data.Site.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, siteId); var itemDataModel = await SaveFreeCommand.Get <SocialBusinessModel>(Input.Data, _dataFactory, "Social"); itemDataModel.Data = Input.Data.Data; await _dataFactory.SaveChangeAsync(); await _cacheProvider.UpdateCacheAsync(siteId); Result.Data = new ExpandoObject(); Result.Data.Master = await _moduleManager.GetMasterAsync(Input.Data.Site); Result.Data.ModuleId = itemDataModel.Id; var roots = _socialBusinessModule.GetRootMetadataTemp(new GetRootMetaDataInput { ItemDataModel = itemDataModel, DataFactory = _dataFactory }); Result.Data.Url = RouteManager.GetPath(SocialBusinessModule.Url, roots); }
protected override async Task ActionAsync() { var siteId = Input.Data.Site.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, siteId); var itemDataModel = await _dataFactory.ItemRepository.GetItemAsync(siteId, Input.Data.ModuleId, false, true); var addSiteBusinessModel = (AddSiteBusinessModel)itemDataModel.Data; addSiteBusinessModel.Templates = Input.Data.Templates; addSiteBusinessModel.UrlConditionsGeneralesUtilisations = Input.Data.UrlConditionsGeneralesUtilisations; var elements = await SaveFreeCommand.GetElementsAsync(_dataFactory, itemDataModel, Input.Data.Elements); // On enregistre l'element addSiteBusinessModel.Elements = elements; await _dataFactory.SaveChangeAsync(); await _cacheProvider.UpdateCacheAsync(siteId); Result.Data = new ExpandoObject(); Result.Data.Master = await _moduleManager.GetMasterAsync(Input.Data.Site); }
protected override async Task ActionAsync() { await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, Input.Data.Site.SiteId); var itemDataModel = await GetMasterItemDataModelAsync(_dataFactory, Input.Data.Site.SiteId, true); if (itemDataModel == null) { itemDataModel = new ItemDataModel(); itemDataModel.SiteId = Input.Data.Site.SiteId; itemDataModel.ParentId = Input.Data.Site.SiteId; itemDataModel.PropertyName = "Master"; itemDataModel.Module = "Master"; itemDataModel.Index = 100; // TODO _dataFactory.Add(itemDataModel); } var elements = await SaveFreeCommand.GetElementsAsync(_dataFactory, itemDataModel, Input.Data.Elements); // On enregistre l'element var freeBusinessModel = new MasterBusinessModel(); freeBusinessModel.Elements = elements; itemDataModel.Data = freeBusinessModel; await _dataFactory.SaveChangeAsync(); await _cacheProvider.UpdateCacheAsync(Input.Data.Site.SiteId); Result.Data = await _moduleManager.GetMasterAsync(Input.Data.Site); }
private static async Task SendEmailAsync(SiteMap.Site siteInfo, IEmailService _emailService, SiteUserDbModel friendUserDb, ApplicationUser userDb, IList <Element> elements, string siteId) { var model = new MailInvitation() { UserNameSender = userDb.FullName, UserName = friendUserDb.FullName, SiteName = siteInfo.Name, SiteUrl = siteInfo.Url, }; var title = FreeBusinessModule.GetTitle(elements); var identityMessage = new MailMessage(); identityMessage.Subject = new StringTemplateRenderer().Render(title, model); var bodyTemplate = new StringBuilder(); foreach (var element in elements) { bodyTemplate.Append("<div>"); if (element.Type == "p") { bodyTemplate.Append(element.Data); } else if (element.Type == "hr") { bodyTemplate.Append("<hr />"); } else if (SaveFreeCommand.IsFileElementType(element.Type)) { var files = JsonConvert.DeserializeObject <List <DataFileInput> >(element.Data); foreach (var dataFile in files) { var uri = $@"{siteInfo.Url}/api/file/get/{siteId}/{dataFile.Id}/{"ImageThumb"}/{UrlHelper .NormalizeTextForUrl(dataFile.Name)}"; bodyTemplate.Append("<div><img src=\"" + uri + "\" /></div>"); } } bodyTemplate.Append("</div>"); } identityMessage.Body = new StringTemplateRenderer().Render(bodyTemplate.ToString(), model); identityMessage.Destination = friendUserDb.Mail; await _emailService.SendAsync(identityMessage); }
public async Task <CommandResult> Save([FromServices] SaveFreeCommand _saveFreeCommand, [FromBody] SaveFreeInput updateFreeInput) { var userInput = new UserInput <SaveFreeInput> { UserId = User.GetUserId(), Data = updateFreeInput }; var result = await Business .InvokeAsync <SaveFreeCommand, UserInput <SaveFreeInput>, CommandResult <dynamic> >(_saveFreeCommand, userInput).ConfigureAwait(false); ; return(result); }
private async Task <ItemDataModel> GetAsync <T>(string _siteId, string _parentId, string moduleName, string propertyName) where T : class, new() { var itemDataModel = (await _dataFactory.ItemRepository.GetItemsAsync(_siteId, new ItemFilters { ParentId = _parentId, Module = NotificationBusinessModule.ModuleName })) .FirstOrDefault(); if (itemDataModel == null) { itemDataModel = await SaveFreeCommand.InitItemDataModelAsync <T>(_dataFactory, moduleName, _siteId, _parentId, propertyName); await _dataFactory.SaveChangeAsync(); } return(itemDataModel); }