public ActionResult _Details(int id)
        {
            var edition = EditionServices.GetEditionById(id);
            var model   = Mapper.Map <EditionEntity, AdminEditionDetailsModel>(edition);

            return(PartialView(model));
        }
Ejemplo n.º 2
0
        public ActionResult _GetFiles(int entityId, string entityType, string fileType, string langCode)
        {
            var files = FileServices.GetFilesByEntity(entityId, entityType, null, langCode).OrderByDescending(x => x.CreatedOn).ToList();

            var isCancelled = false;

            if (entityType == EntityType.Edition.GetDescription())
            {
                var edition = EditionServices.GetEditionById(entityId, Constants.ValidEventTypesForCed);
                isCancelled = edition.IsCancelled();
            }

            var model = new FilesEditModel
            {
                EntityId        = entityId,
                EntityType      = entityType.ToEnumFromDescription <EntityType>(),
                EditionFileType = fileType.ToEnumFromDescription <EditionFileType>(),
                LanguageCode    = langCode,
                Files           = files,
                CurrentUser     = CurrentCedUser,
                IsCancelled     = isCancelled
            };

            return(PartialView("_EditionFiles", model));
        }
        public ActionResult EditionUpdate(int editionId)
        {
            var edition   = EditionServices.GetEditionById(editionId);
            var buttonUrl = _editionHelper.GetEditionUrl(edition);

            SendEmailNotification(edition, NotificationType.EditionUpdated, WebConfigHelper.AdminEmails, CurrentCedUser.CurrentUser, "test", buttonUrl);

            return(View());
        }
        public ActionResult PostShowMetricsInfoCompleteness2(int editionId)
        {
            var edition          = EditionServices.GetEditionById(editionId);
            var notificationAttr = NotificationType.PostShowMetricsInfoCompleteness2.GetAttribute <NotificationAttribute>();
            var buttonUrl        = _editionHelper.GetEditionUrl(edition, notificationAttr.Fragment);

            SendEmailNotification(edition, NotificationType.PostShowMetricsInfoCompleteness2, WebConfigHelper.AdminEmails, CurrentCedUser.CurrentUser, "test", buttonUrl);

            return(View());
        }
Ejemplo n.º 5
0
        public void ResetEditionStartDateDifferences()
        {
            var editionIds = _unitOfWork.EditionRepository
                             .GetManyQueryable(x => true)
                             .OrderByDescending(x => x.StartDate)
                             .Select(x => x.EditionId)
                             .ToList();

            foreach (var editionId in editionIds)
            {
                var editionEntity    = _editionServices.GetEditionById(editionId);
                var editionWeekDiffs = GetStartDateDifferencesByPreviousEdition(editionEntity);

                // UPDATE FOR CURRENT EDITION
                editionEntity.StartWeekOfYearDiff = editionWeekDiffs[0];
                editionEntity.StartDayOfYearDiff  = editionWeekDiffs[1];

                _editionServices.UpdateEdition(editionId, editionEntity, Helpers.Constants.AutoIntegrationUserId, false);
            }
        }
        public ActionResult _AddEditionKeyVisitor(int editionId, int keyVisitorId, string value)
        {
            var edition = EditionServices.GetEditionById(editionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            //var keyVisitor = KeyVisitorServices.GetKeyVisitorById(keyVisitorId);
            //if (keyVisitor == null)
            //    return Json(new { success = false, message = "KeyVisitor doesn't exist." }, JsonRequestBehavior.AllowGet);

            var editionKeyVisitorId = EditionKeyVisitorServices.CreateEditionKeyVisitor(new
                                                                                        EditionKeyVisitorEntity
            {
                EditionId    = editionId,
                EventBEID    = edition.AxEventId,
                KeyVisitorId = keyVisitorId,
                Value        = value.Trim()
            },
                                                                                        CurrentCedUser.CurrentUser.UserId
                                                                                        );

            // TODO: KeyVisitor entity is not loaded into EditionKeyVisitor entity.
            var editionKeyVisitor = EditionKeyVisitorServices.GetEditionKeyVisitorById(editionKeyVisitorId);
            var keyVisitor        = KeyVisitorServices.GetKeyVisitorById(editionKeyVisitor.KeyVisitorId);

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = "KeyVisitor", ValA = null, ValB = keyVisitor.Name + ": " + editionKeyVisitor.Value
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("KeyVisitor", new List <Variance> {
                new Variance {
                    Prop = "KeyVisitor"
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = "KeyVisitor has been added." /*, editionKeyVisitorCount = editionKeyVisitorCount*/ }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _DeleteCohostEdition(int cohostEditionId)
        {
            var cohostEdition = EditionCoHostServices.GetEditionCohostById(cohostEditionId);

            if (cohostEdition == null)
            {
                return(Json(new { success = false, message = "Co-host doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(cohostEdition.FirstEditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EditionCoHostServices.DeleteEditionCohost(cohostEditionId);

            if (!deleted)
            {
                return(Json(new { success = false, message = "Co-host could not be removed." }, JsonRequestBehavior.AllowGet));
            }

            var cohostCount = SetEditionCohostedEventStatus(cohostEdition.FirstEditionId);

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = "Co-host", ValA = null, ValB = cohostEdition.FirstEdition.EditionName
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("Co-host", new List <Variance> {
                new Variance {
                    Prop = "Co-host"
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = "Co-host has been removed.", cohostCount = cohostCount }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _DeleteEditionPaymentSchedule(int editionPaymentScheduleId)
        {
            var editionPaymentSchedule = EditionPaymentScheduleServices.GetById(editionPaymentScheduleId);

            if (editionPaymentSchedule == null)
            {
                return(Json(new { success = false, message = "Edition payment schedule doesn't exist!" }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(editionPaymentSchedule.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EditionPaymentScheduleServices.Delete(editionPaymentScheduleId);

            if (!deleted)
            {
                return(Json(new { success = false, message = $"Edition payment schedule could not be deleted: {editionPaymentSchedule.Name}" }, JsonRequestBehavior.AllowGet));
            }

            var scopeName = "Edition Payment Schedule";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = scopeName, ValA = editionPaymentSchedule.Name, ValB = null
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = $"Edition payment schedule has been deleted: {editionPaymentSchedule.Name}" }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _DeleteSocialMedia(int editionSocialMediaId)
        {
            var editionSocialMedia = EditionTranslationSocialMediaServices.GetById(editionSocialMediaId);

            if (editionSocialMedia == null)
            {
                return(Json(new { success = false, message = "Social media account doesn't exist!" }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(editionSocialMedia.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EditionTranslationSocialMediaServices.Delete(editionSocialMediaId);

            if (!deleted)
            {
                return(Json(new { success = false, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account could not be deleted." }, JsonRequestBehavior.AllowGet));
            }

            var scopeName = "Social Media Account";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = scopeName, ValA = editionSocialMedia.SocialMediaId + "/" + editionSocialMedia.AccountName, ValB = null
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account has been deleted." }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 10
0
        public ActionResult _DeleteEditionDiscountApprover(int id)
        {
            var discountApprover = EditionDiscountApproverServices.GetById(id);

            if (discountApprover == null)
            {
                return(Json(new { success = false, message = "Discount approver doesn't exist!" }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(discountApprover.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EditionDiscountApproverServices.Delete(id);

            if (!deleted)
            {
                return(Json(new { success = false, message = $"Discount approver could not be deleted: {discountApprover.ApprovingUser}" }, JsonRequestBehavior.AllowGet));
            }

            var scopeName = "Edition Discount Approver";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = scopeName, ValA = discountApprover.ApprovingUser, ValB = null
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = $"Discount approver has been deleted: {discountApprover.ApprovingUser}" }, JsonRequestBehavior.AllowGet));
        }
        private int SetEditionCohostedEventStatus(int editionId)
        {
            var cohosts = EditionCoHostServices.GetEditionCohosts(editionId);

            if (!cohosts.Any() || cohosts.Count == 1)
            {
                var edition        = EditionServices.GetEditionById(editionId);
                var currentEdition = (EditionEntity)edition.Clone();

                edition.CohostedEvent = cohosts.Any();
                EditionServices.UpdateEdition(editionId, edition, CurrentCedUser.CurrentUser.UserId);

                UpdateLogInMemory(currentEdition, edition, null, null);
            }

            return(cohosts.Count);
        }
        public ActionResult _DeleteEditionKeyVisitor(int editionKeyVisitorId)
        {
            var editionKeyVisitor = EditionKeyVisitorServices.GetEditionKeyVisitorById(editionKeyVisitorId);

            if (editionKeyVisitor == null)
            {
                return(Json(new { success = false, message = "KeyVisitor doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(editionKeyVisitor.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EditionKeyVisitorServices.DeleteEditionKeyVisitor(editionKeyVisitorId);

            if (!deleted)
            {
                return(Json(new { success = false, message = "KeyVisitor could not be removed." }, JsonRequestBehavior.AllowGet));
            }

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = "KeyVisitor", ValA = editionKeyVisitor.KeyVisitor.Name + ": " + editionKeyVisitor.Value, ValB = null
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("KeyVisitor", new List <Variance> {
                new Variance {
                    Prop = "KeyVisitor"
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = "KeyVisitor has been removed." /*, editionKeyVisitorCount = editionKeyVisitorCount*/ }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _AddSocialMedia(int editionTranslationId, string socialMediaId, string accountName)
        {
            if (string.IsNullOrWhiteSpace(accountName))
            {
                return(Json(new { success = false, message = "Account name cannot be empty!" }, JsonRequestBehavior.AllowGet));
            }

            var editionTranslation = EditionTranslationServices.GetEditionTranslationById(editionTranslationId);

            if (editionTranslation == null)
            {
                return(Json(new { success = false, message = "Edition translation must be saved for this action." }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(editionTranslation.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var existingSocialMedia = SocialMediaServices.GetSocialMediaById(socialMediaId);

            if (existingSocialMedia == null)
            {
                socialMediaId = SocialMediaServices.CreateSocialMedia(socialMediaId);
            }

            if (!string.IsNullOrWhiteSpace(socialMediaId))
            {
                var existingEditionSocialMedia = EditionTranslationSocialMediaServices.Get(editionTranslationId, socialMediaId);

                if (existingEditionSocialMedia != null)
                {
                    return(Json(new { success = false, message = $"<i class='fa fa-{existingEditionSocialMedia.SocialMediaId}'></i> {existingEditionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account already exists!" }, JsonRequestBehavior.AllowGet));
                }

                var editionSocialMedia = new EditionTranslationSocialMediaEntity
                {
                    EditionId            = editionTranslation.EditionId,
                    EditionTranslationId = editionTranslation.EditionTranslationId,
                    SocialMediaId        = socialMediaId,
                    AccountName          = accountName
                };
                EditionTranslationSocialMediaServices.Create(editionSocialMedia, CurrentCedUser.CurrentUser.UserId);


                var scopeName = "Social Media Account";

                // UPDATE EDITION
                UpdateEditionUpdateInfo(edition);

                // DIFF
                var diff = new List <Variance> {
                    new Variance {
                        Prop = scopeName, ValA = null, ValB = editionSocialMedia.SocialMediaId + "/" + editionSocialMedia.AccountName
                    }
                };

                OnEditionUpdated(edition, diff);

                // UPDATE LOG
                var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> {
                    new Variance {
                        Prop = scopeName
                    }
                });
                UpdateLogInMemory(edition, updatedFields);

                return(Json(new { success = true, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account has been added." }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { success = false, message = "<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnum<SocialMediaType>()} account could not be added!" }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _AddEditionSection(EditionSectionAddModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { success = false, message = ModelState.GetErrors() }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(model.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var existingEditionSection = EditionSectionServices.Get(model.EditionId, model.Sections);

            if (existingEditionSection != null)
            {
                return(Json(
                           new
                {
                    success = false,
                    message =
                        $"Edition Section already exists: {existingEditionSection.Sections}"
                }, JsonRequestBehavior.AllowGet));
            }

            var editionSection = new EditionSectionEntity
            {
                EditionId = edition.EditionId,
                Sections  = model.Sections
            };

            EditionSectionServices.Create(editionSection, CurrentCedUser.CurrentUser.UserId);

            var scopeName = "Edition Section";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance>
            {
                new Variance
                {
                    Prop = scopeName, ValA = null,
                    ValB = editionSection.Sections
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName,
                                                                                    new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(
                       new
            {
                success = true,
                message =
                    $"Edition Section has been added: {editionSection.Sections}"
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 15
0
        public ActionResult _AddEditionDiscountApprover(EditionDiscountApproverAddModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { success = false, message = ModelState.GetErrors() }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(model.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var existingDiscountApprover = EditionDiscountApproverServices.Get(model.EditionId, model.ApprovingUser);

            if (existingDiscountApprover != null)
            {
                return(Json(
                           new
                {
                    success = false,
                    message =
                        $"Discount approver already exists: {existingDiscountApprover.ApprovingUser}"
                }, JsonRequestBehavior.AllowGet));
            }

            var discountApprover = new EditionDiscountApproverEntity
            {
                EditionId               = edition.EditionId,
                ApprovingUser           = model.ApprovingUser,
                ApprovalLowerPercentage = model.ApprovalLowerPercentage.GetValueOrDefault(),
                ApprovalUpperPercentage = model.ApprovalUpperPercentage.GetValueOrDefault()
            };

            EditionDiscountApproverServices.Create(discountApprover, CurrentCedUser.CurrentUser.UserId);

            var scopeName = "Edition Discount Approver";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance>
            {
                new Variance
                {
                    Prop = scopeName, ValA = null,
                    ValB = discountApprover.ApprovingUser
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName,
                                                                                    new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(
                       new
            {
                success = true,
                message =
                    $"Discount approver has been added: {discountApprover.ApprovingUser}"
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _AddCohostEdition(int editionId, int cohostEditionId)
        {
            var edition = EditionServices.GetEditionById(editionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var cohostEdition = EditionServices.GetEditionById(cohostEditionId);

            if (cohostEdition == null)
            {
                return(Json(new { success = false, message = "Co-host edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            if (EditionCoHostServices.EditionCohostExists(editionId, cohostEditionId))
            {
                return(Json(new { success = false, message = "Co-host already exists." }, JsonRequestBehavior.AllowGet));
            }

            if (cohostEditionId == editionId)
            {
                return(Json(new { success = false, message = "You cannot add the edition itself as its co-host." }, JsonRequestBehavior.AllowGet));
            }

            EditionCoHostServices.CreateEditionCohost(new
                                                      EditionCohostEntity
            {
                FirstEditionId  = editionId,
                SecondEditionId = cohostEditionId
            }
                                                      , CurrentCedUser.CurrentUser.UserId
                                                      );

            var cohostCount = SetEditionCohostedEventStatus(editionId);

            SetEditionCohostedEventStatus(cohostEditionId);

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance> {
                new Variance {
                    Prop = "Co-host", ValA = null, ValB = cohostEdition.EditionName
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("Co-host", new List <Variance> {
                new Variance {
                    Prop = "Co-host"
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(new { success = true, message = "Co-host has been added.", cohostCount = cohostCount }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 17
0
        public ActionResult _Delete(int fileId, string fileType)
        {
            var editionFileType = fileType.ToLower().ToEnumFromDescription <EditionFileType>();

            var file = FileServices.GetFileById(fileId);

            if (file == null)
            {
                return(Json(new { success = false, message = Constants.FileNotFound }));
            }

            var edition = EditionServices.GetEditionById(file.EntityId);

            if (edition.IsCancelled())
            {
                return(Json(new { success = false, message = Constants.WarningMessageEventCancelled }));
            }

            var success = FileServices.DeleteFile(file.FileId);

            if (success)
            {
                bool success2;
                if (file.EditionFileType.GetAttribute <FileTypeAttribute>().Private)
                {
                    success2 = DeleteFileFromLocalDisk(file.FileName, file.EditionFileType);
                }
                else
                {
                    var blobName = editionFileType.BlobFullName(file.FileName);

                    try
                    {
                        success2 = _azureStorageService.DeleteFile(blobName);
                    }
                    catch (Exception exc)
                    {
                        var log = CreateInternalLog(exc);
                        ExternalLogHelper.Log(log, LoggingEventType.Error);

                        success2 = false;
                    }
                }

                //if (!success2)
                //    return Json(new {success = false, message = "File could not be deleted!"});

                // UPDATE EDITON
                UpdateEditionUpdateInfo(edition);

                //// DIFF
                //var diff = new List<Variance> { new Variance { Prop = $"File ({file.EditionFileType})", ValA = file.FileName, ValB = null } };

                //OnEditionUpdated(edition, diff);

                // UPDATE LOG
                var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson($"File ({file.EditionFileType})", new List <Variance> {
                    new Variance {
                        Prop = editionFileType.ToString()
                    }
                });
                UpdateLogInMemory(edition, updatedFields);

                // UPDATEDCONTENT
                var currentFileForComparison = new FileEntity {
                    FileName = file.FileName
                };
                var fileForComparison = new FileEntity();
                fileForComparison.SetFullUrl();
                var updatedContent = NotificationControllerHelper.GetUpdatedContent(currentFileForComparison, fileForComparison);

                PushEditionUpdateNotifications(edition, updatedContent);

                return(Json(new { success = true, message = Constants.FileDeleted, fileType = editionFileType.GetDescription() }));
            }
            return(Json(new { success = false, message = Constants.FileNotDeleted }));
        }
        public ActionResult _AddEditionPaymentSchedule(EditionPaymentScheduleAddModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { success = false, message = ModelState.GetErrors() }, JsonRequestBehavior.AllowGet));
            }

            var edition = EditionServices.GetEditionById(model.EditionId);

            if (edition == null)
            {
                return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet));
            }

            var existingEditionPaymentSchedule = EditionPaymentScheduleServices.Get(model.EditionId, model.Name);

            if (existingEditionPaymentSchedule != null)
            {
                return(Json(
                           new
                {
                    success = false,
                    message =
                        $"Edition payment schedule already exists: {existingEditionPaymentSchedule.Name}"
                }, JsonRequestBehavior.AllowGet));
            }

            var editionPaymentSchedule = new EditionPaymentScheduleEntity
            {
                EditionId              = edition.EditionId,
                Name                   = model.Name,
                ActivationDate         = model.ActivationDate,
                ExpiryDate             = model.ExpiryDate,
                Installment1DueDate    = model.Installment1DueDate,
                Installment1Percentage = model.Installment1Percentage,
                Installment2DueDate    = model.Installment2DueDate,
                Installment2Percentage = model.Installment2Percentage,
                Installment3DueDate    = model.Installment3DueDate,
                Installment3Percentage = model.Installment3Percentage,
                Installment4DueDate    = model.Installment4DueDate,
                Installment4Percentage = model.Installment4Percentage,
                Installment5DueDate    = model.Installment5DueDate,
                Installment5Percentage = model.Installment5Percentage,
            };

            EditionPaymentScheduleServices.Create(editionPaymentSchedule, CurrentCedUser.CurrentUser.UserId);

            var scopeName = "Edition Payment Schedule";

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // DIFF
            var diff = new List <Variance>
            {
                new Variance
                {
                    Prop = scopeName, ValA = null,
                    ValB = editionPaymentSchedule.Name
                }
            };

            OnEditionUpdated(edition, diff);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName,
                                                                                    new List <Variance> {
                new Variance {
                    Prop = scopeName
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            return(Json(
                       new
            {
                success = true,
                message =
                    $"Edition payment schedule has been added: {editionPaymentSchedule.Name}"
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 19
0
        public ActionResult _Upload()
        {
            var entityId    = Convert.ToInt32(Request.Params["EntityId"]);
            var fileType    = Request.Params["FileType"].ToEnum <EditionFileType>();
            var langCode    = Request.Params["LanguageCode"];
            var isSaved     = true;
            var newFileName = "";

            var edition = EditionServices.GetEditionById(entityId);

            if (edition == null)
            {
                return(View("NotFound", new ErrorModel {
                    Message = Constants.EditionNotFound
                }));
            }
            if (edition.IsCancelled())
            {
                return(Json(new { success = false, message = Constants.WarningMessageEventCancelled }));
            }

            try
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileNameWithoutExtension(file.FileName);

                    // CHECK EXTENSION
                    var extension         = Path.GetExtension(file.FileName);
                    var allowedExtensions = fileType.GetAttribute <FileTypeAttribute>().AllowedExtensions;

                    if (!allowedExtensions.Contains(extension))
                    {
                        return(Json(new { success = false, message = Constants.InvalidFileExtension }));
                    }

                    newFileName = EditionServiceHelper.ComposeFileName(edition.EditionId, fileName, fileType, langCode, extension);

                    // The way of saving changes depending on fileType's Private property.
                    var result = fileType.GetAttribute <FileTypeAttribute>().Private
                        ? SaveFileToLocalDisk(fileType, newFileName, file)
                        : SaveFileToAzureStorage(fileType, newFileName, file);

                    switch (result.Result)
                    {
                    case OperationResult.AlreadyExists:
                        return(Json(new { success = false, message = Constants.FileAlreadyExistsWithTheSameName }));

                    case OperationResult.Failed:
                        return(Json(new { success = false, message = result.Message }));
                    }

                    // CREATE FILE
                    if (!SaveFileInfo(entityId, newFileName, fileType, extension, langCode))
                    {
                        return(Json(new { success = false, message = Constants.ErrorWhileSavingFile }));
                    }
                }
            }
            catch (Exception exc)
            {
                isSaved = false;

                var log = CreateInternalLog(exc);
                ExternalLogHelper.Log(log, LoggingEventType.Error);
            }

            if (!isSaved)
            {
                return(Json(new { success = false, message = Constants.ErrorWhileSavingFile }));
            }

            // UPDATE EDITION
            UpdateEditionUpdateInfo(edition);

            // UPDATE LOG
            var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson($"File ({fileType})", new List <Variance> {
                new Variance {
                    Prop = fileType.ToString()
                }
            });

            UpdateLogInMemory(edition, updatedFields);

            //UpdateLogInMemory(currentEdition, edition, currentEditionTranslation, editionTranslation);

            // UPDATEDCONTENT
            var currentFileForComparison = new FileEntity();
            var fileForComparison        = new FileEntity {
                FileName = newFileName
            };

            fileForComparison.SetFullUrl();
            var updatedContent = NotificationControllerHelper.GetUpdatedContent(currentFileForComparison, fileForComparison);

            PushEditionUpdateNotifications(edition, updatedContent);

            return(Json(new { success = true, message = Constants.FileSaved }));
        }