private ArticleViewModel ConstructAVM(Article item, bool shortDescription) { string actualDecription = (shortDescription && item.Description.Length > 300) ? item.Description.Substring(0, 300) + " . . ." : item.Description; //actualDecription = actualDecription.Replace("[newstr]", "</p><p>"); ArticleViewModel avm = new ArticleViewModel { Title = item.Title, EnTitle = item.EnTitle, Description = actualDecription, UpdateTime = item.UpdateTime, Category = item.Category, CategoryId = item.CategoryId, Link = item.Link, Companies = item.Companies, Id = item.Id }; string[] hashtags = item.HashTags.Split(' '); foreach (var hashtag in hashtags) { avm.HashTags.Add(hashtag); } //формируем список изображений foreach (var im in item.Images) { avm.ImagesInBase64.Add(FromByteToBase64Converter.GetImageBase64Src(im.Image)); } return(avm); }
public JsonResult GetImageForThumb(int Id) { Image image = _repositoryImage.GetImage(Id); ImageViewModel imageViewModel = new ImageViewModel { GoodId = 0, Id = image.Id, goodImageIds = 0 + "_" + image.Id, ImageMimeType = image.ImageMimeType, ImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(image) }; return(Json(imageViewModel)); }
public IActionResult Goods(GoodStatus goodsStatus = GoodStatus.Active) { var currentUser = _repositoryUser.GetCurrentUser(User.Identity.Name); if (currentUser != null) { var Company = _repositoryCompany.GetUserCompany(currentUser); var Goods = _repositoryGood.ShopGoodsFullInformation(Company.Id).ToList(); List <GoodViewModel> GoodsVM = new List <GoodViewModel>(); foreach (var good in Goods) { GoodViewModel gvm = new GoodViewModel { Amount = good.Amount, Category = good.Category, CategoryId = good.CategoryId, Companies = good.Companies, Description = good.Description, Id = good.Id, Images = good.Images, Title = good.Title }; if (good.Images.Count != 0) { gvm.MainImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(good.Images.ToList()[0]); } GoodsVM.Add(gvm); } ViewBag.GoodsVM = GoodsVM; } else { Redirect("/"); } ViewBag.ActiveSubMenu = "Товары/Услуги"; if (goodsStatus == GoodStatus.Active) { ViewBag.ActiveGoodsStatusMenu = 1; } if (goodsStatus == GoodStatus.InActive) { ViewBag.ActiveGoodsStatusMenu = 0; } return(View()); }
public IActionResult EditGood(int goodId) { CreateEditGoodViewModel cegvm = null; if (goodId != 0) { Good good = _repositoryGood.GetGood(goodId); cegvm = new CreateEditGoodViewModel { Category = good.Category.Title, CategoryId = good.CategoryId, Description = good.Description, Id = good.Id, Images = good.Images, Title = good.Title }; if (good.Images.Count != 0) { cegvm.MainImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(good.Images.ToList()[0]); foreach (var image in good.Images) { cegvm.ImageViewModels.Add( new ImageViewModel { GoodId = image.GoodId, Id = image.Id, goodImageIds = image.GoodId + "_" + image.Id, ImageMimeType = image.ImageMimeType, ImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(image) } ); } } } else { cegvm = new CreateEditGoodViewModel(); } return(View(cegvm)); }
public IActionResult EditArticle(int id) { CreateEditArticleViewModel cegvm = null; if (id != 0) { #region формирование данных статьи для отображения в интерфейсе редактирования Article item = _repositoryArticle.GetArticle(id); cegvm = new CreateEditArticleViewModel { Title = item.Title, EnTitle = item.EnTitle, Description = item.Description, Link = item.Link, HashTags = item.HashTags, Category = item.Category.Title, CategoryId = item.CategoryId, Id = item.Id, metaDescription = item.metaDescription, metaKeyWords = item.metaKeyWords }; if (item.Images.Count != 0) { cegvm.MainImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(item.Images.ToList()[0].Image); foreach (var rgi in item.Images) { //для каждого изображения составляем соответствующую модель отображения cegvm.ImageViewModels.Add( new ImageViewModel { GoodId = rgi.GoodId, Id = rgi.ImageId, goodImageIds = rgi.GoodId + "_" + rgi.ImageId, ImageMimeType = rgi.Image.ImageMimeType, ImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(rgi.Image) } ); //для каждого изображения оставляем его id в input всех id изображений товара cegvm.goodImagesIds += rgi.ImageId + "_"; } } #endregion } else { cegvm = new CreateEditArticleViewModel(); } #region формирование списка ключевиков для САЙТА ViewBag.SiteKws = _repositoryKW.Kws(null).ToList(); #endregion ViewData["Title"] = _settings.ApplicationTitle + "Администрирование: Добавление/Редактирование статьи"; ViewData["HeaderTitle"] = _settings.HeaderTitle; ViewData["FooterTitle"] = _settings.FooterTitle; ViewBag.ActiveSubMenu = "Статьи"; return(View(cegvm)); }
public async Task <IActionResult> RegisterCompany(CreateEditCompanyViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); //await _emailSender.SendEmailAsync(model.Email, "Confirm your account", // $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>"); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation(3, "User created a new account with password."); #region ФОРМИРУЕМ СПИСОК ИЗОБРАЖЕНИЙ //ФОРМИРУЕМ СПИСОК ИЗОБРАЖЕНИЙ List <RelCompanyImage> relImages = new List <RelCompanyImage>(); //если строка id изображений непуста тогда формируем список if (model.companyImagesIds != null) { string[] strImgids = model.companyImagesIds.Trim().Substring(0, model.companyImagesIds.Length - 1).Split('_'); foreach (var strImageId in strImgids) { if (strImageId.Length == 0) { continue; //это случай когдау товара нет изображений, но в массив все равно попадает распарсеная пустая строка } relImages.Add(new RelCompanyImage { CompanyId = 0, ImageId = Convert.ToInt32(strImageId) }); } } #endregion #region СОЗДАНИЕ КОМПАНИИ //При регистрации пользователя для него по умолчанию создается компания с параметрами которые он задал _repositoryCompany.SaveCompanyAccount(new Company { ApplicationUserId = user.Id, AccountType = AccountType.Company, Title = model.Name, Description = model.ActivityDescription, ContactEmail = model.Email, Telephone = model.Telephone, Images = relImages }); #endregion return(RedirectToAction(nameof(HomeController.IndexCat), "Home")); } AddErrors(result); } #region ОТОБРАЖЕНИЕ УЖЕ ДОБАВЛЕННЫХ ФОТОК ЕСЛИ ОШИБКА ПРИ СОХРАНЕНИИ // If we got this far, something failed, redisplay form // заполняем список изображений уже добавленных пользователем при регистрации if (model.companyImagesIds != null) { List <int> logoids = GetIntIds.ConvertIdsToInt(model.companyImagesIds); model.LogoImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(_repositoryImage.GetImage(logoids[0])); foreach (var id in logoids) { Image im = _repositoryImage.GetImage(id); //для каждого изображения составляем соответствующую модель отображения model.ImageViewModels.Add( new ImageViewModel { GoodId = 0, Id = im.Id, goodImageIds = "0_" + im.Id, ImageMimeType = im.ImageMimeType, ImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(im) } ); } } #endregion return(View(model)); }
public IActionResult EditProfile() { ViewBag.ActiveSubMenu = "Профиль"; ViewData["Title"] = _settings.ApplicationTitle + "Администрирование: Статьи"; ViewData["HeaderTitle"] = _settings.HeaderTitle; ViewData["FooterTitle"] = _settings.FooterTitle; var user = _repositoryUser.GetCurrentUser(User.Identity.Name); var Company = _repositoryCompany.GetUserCompany(user); switch (Company.AccountType) { case AccountType.Company: { #region редирект на view для Company var cecvm = new CreateEditCompanyViewModel { Id = Company.Id, Name = Company.Title, ActivityDescription = Company.Description, Email = Company.ContactEmail, Telephone = Company.Telephone }; #region ЗАПИСЬ ИЗОБРАЖЕНИЙ ВО VIEWMODEL if (Company.Images.Count != 0) { cecvm.LogoImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(Company.Images.ToList()[0].Image); foreach (var rci in Company.Images) { //для каждого изображения составляем соответствующую модель отображения cecvm.ImageViewModels.Add( new ImageViewModel { GoodId = rci.CompanyId, Id = rci.ImageId, goodImageIds = rci.CompanyId + "_" + rci.ImageId, ImageMimeType = rci.Image.ImageMimeType, ImageInBase64 = FromByteToBase64Converter.GetImageBase64Src(rci.Image) } ); //для каждого изображения оставляем его id в input всех id изображений товара cecvm.companyImagesIds += rci.ImageId + "_"; } } #endregion return(View("CompanyProfileEditView", cecvm)); #endregion } case AccountType.PrivatePerson: { #region редирект на view для PrivatePerson var cecvm = new CreateEditCompanyViewModel { Name = Company.Title, ActivityDescription = Company.Description, Email = Company.ContactEmail, Telephone = Company.Telephone }; return(View("PrivatePersonProfileEditView", cecvm)); #endregion } default: return(View("PrivatePersonProfileEditView")); } }