public OperationResultVo GenerateNew(Guid currentUserId) { try { //int lastIssueNumber = userContentDomainService.GetMaxIssueNumber(currentUserId); ComicStripViewModel newVm = new ComicStripViewModel { UserId = currentUserId, SeriesId = currentUserId, PublishDate = DateTime.Now, Language = SupportedLanguage.English }; newVm.Images.Add(new ImageListItemVo { Language = newVm.Language, Image = Constants.DefaultComicStripPlaceholder }); newVm.Images.Add(new ImageListItemVo { Language = SupportedLanguage.Portuguese, Image = Constants.DefaultComicStripPlaceholder }); return(new OperationResultVo <ComicStripViewModel>(newVm)); } catch (Exception ex) { return(new OperationResultVo(ex.Message)); } }
public JsonResult Save(ComicStripViewModel vm) { bool isNew = vm.Id == Guid.Empty; try { vm.UserId = CurrentUserId; OperationResultVo <Guid> saveResult = comicsAppService.Save(CurrentUserId, vm); if (saveResult.Success) { string url = Url.Action("edit", "comics", new { area = "member", id = vm.Id, pointsEarned = saveResult.PointsEarned }); if (isNew && EnvName.Equals(ConstantHelper.ProductionEnvironmentName)) { NotificationSender.SendTeamNotificationAsync("New Comic Strip created!"); } return(Json(new OperationResultRedirectVo <Guid>(saveResult, url))); } else { return(Json(new OperationResultVo(false))); } } catch (Exception ex) { return(Json(new OperationResultVo(ex.Message))); } }
private void SetLocalization(ComicStripViewModel item, bool editing) { //if (item != null) //{ // DisplayAttribute displayStatus = item.Status.GetAttributeOfType<DisplayAttribute>(); // item.StatusLocalized = SharedLocalizer[displayStatus != null ? displayStatus.Name : item.Status.ToString()]; //} }
private void SetImagesToShow(ComicStripViewModel vm, bool editing) { vm.FeaturedImage = ContentHelper.SetFeaturedImage(vm.UserId, vm.FeaturedImage, ImageRenderType.Full); vm.FeaturedImageLquip = ContentHelper.SetFeaturedImage(vm.UserId, vm.FeaturedImage, ImageRenderType.LowQuality); foreach (ImageListItemVo image in vm.Images) { image.Image = ContentHelper.SetFeaturedImage(vm.UserId, image.Image, ImageRenderType.Full); image.ImageResponsive = ContentHelper.SetFeaturedImage(vm.UserId, image.Image, ImageRenderType.Responsive); image.ImageLquip = ContentHelper.SetFeaturedImage(vm.UserId, image.Image, ImageRenderType.LowQuality); } if (editing) { if (!vm.Images.Any(x => x.Language == SupportedLanguage.English)) { vm.Images.Add(new ImageListItemVo { Language = SupportedLanguage.English, Image = Constants.DefaultComicStripPlaceholder }); } if (!vm.Images.Any(x => x.Language == SupportedLanguage.Portuguese)) { vm.Images.Add(new ImageListItemVo { Language = SupportedLanguage.Portuguese, Image = Constants.DefaultComicStripPlaceholder }); } } else { string selectedFeaturedImage = vm.FeaturedImage; if (vm.Images.Any(x => x.Language == vm.Language)) { selectedFeaturedImage = vm.Images.FirstOrDefault(x => x.Language == vm.Language)?.Image; } else if (vm.Images.Any()) { selectedFeaturedImage = vm.Images.FirstOrDefault()?.Image; } vm.FeaturedImage = ContentHelper.SetFeaturedImage(vm.UserId, selectedFeaturedImage, ImageRenderType.Full); vm.FeaturedImageResponsive = ContentHelper.SetFeaturedImage(vm.UserId, selectedFeaturedImage, ImageRenderType.Responsive); vm.FeaturedImageLquip = ContentHelper.SetFeaturedImage(vm.UserId, selectedFeaturedImage, ImageRenderType.LowQuality); } vm.Images = vm.Images.OrderBy(x => x.Language).ToList(); }
public IActionResult Add() { OperationResultVo serviceResult = comicsAppService.GenerateNew(CurrentUserId); if (serviceResult.Success) { OperationResultVo <ComicStripViewModel> castResult = serviceResult as OperationResultVo <ComicStripViewModel>; ComicStripViewModel model = castResult.Value; SetLocalization(model); return(View("CreateEditWrapper", model)); } else { return(View("CreateEditWrapper", new ComicStripViewModel())); } }
public OperationResultVo <Guid> Save(Guid currentUserId, ComicStripViewModel viewModel) { int pointsEarned = 0; try { UserContent model; UserContent existing = userContentDomainService.GetById(viewModel.Id); if (existing != null) { model = mapper.Map(viewModel, existing); } else { model = mapper.Map <UserContent>(viewModel); } FormatImagesToSave(model); if (viewModel.Id == Guid.Empty) { userContentDomainService.Add(model); viewModel.Id = model.Id; } else { userContentDomainService.Update(model); } unitOfWork.Commit(); viewModel.Id = model.Id; return(new OperationResultVo <Guid>(model.Id, pointsEarned)); } catch (Exception ex) { return(new OperationResultVo <Guid>(ex.Message)); } }
public OperationResultVo GetForEdit(Guid currentUserId, Guid id) { try { UserContent existing = userContentDomainService.GetById(id); ComicStripViewModel vm = mapper.Map <ComicStripViewModel>(existing); SetAuthorDetails(vm); SetImagesToShow(vm, true); SetPermissions(currentUserId, vm); return(new OperationResultVo <ComicStripViewModel>(vm)); } catch (Exception ex) { return(new OperationResultVo(ex.Message)); } }
public IActionResult Details(Guid id) { OperationResultVo result = comicsAppService.GetForDetails(CurrentUserId, id); if (result.Success) { OperationResultVo <ComicStripViewModel> castRestult = result as OperationResultVo <ComicStripViewModel>; ComicStripViewModel model = castRestult.Value; SetAuthorDetails(model); SetLocalization(model); return(View("Details", model)); } else { return(RedirectToAction("index", "home", new { area = string.Empty })); } }
public OperationResultVo GetForDetails(Guid currentUserId, Guid id) { try { UserContent existing = userContentDomainService.GetById(id); ComicStripViewModel vm = mapper.Map <ComicStripViewModel>(existing); UserContentRating currentUserRate = existing.Ratings.FirstOrDefault(x => x.UserId == currentUserId); if (currentUserRate != null) { vm.CurrentUserRating = currentUserRate.Score; } int ratingCounts = existing.Ratings.Count > 0 ? existing.Ratings.Count : 1; vm.RatingCount = existing.Ratings.Count; vm.TotalRating = existing.Ratings.Sum(x => x.Score) / ratingCounts; vm.LikeCount = vm.Likes.Count; vm.CommentCount = vm.Comments.Count; SetAuthorDetails(vm); LoadAuthenticatedData(currentUserId, vm); SetImagesToShow(vm, false); return(new OperationResultVo <ComicStripViewModel>(vm)); } catch (Exception ex) { return(new OperationResultVo(ex.Message)); } }
private void SetPermissions(Guid currentUserId, ComicStripViewModel vm) { SetBasePermissions(currentUserId, vm); }
private void SetLocalization(ComicStripViewModel model) { SetLocalization(model, false); }