public ActionResult _Details(int id) { var edition = EditionServices.GetEditionById(id); var model = Mapper.Map <EditionEntity, AdminEditionDetailsModel>(edition); return(PartialView(model)); }
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()); }
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)); }
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)); }
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)); }
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)); }
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 })); }