Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }