public bool DeleteArticleImages(string goodImageIds) { if (goodImageIds != null) { int[] ids = GetIntIds.ConvertIdsToInt(goodImageIds).ToArray(); _repositoryImage.DeleteImages(ids); } return(true); }
public bool DeleteCompanyImages(string companyImagesIds) { if (companyImagesIds != null) { int[] ids = GetIntIds.ConvertIdsToInt(companyImagesIds).ToArray(); _repositoryImage.DeleteImages(ids); } return(true); }
public string RestoreImages(string goodImageIds, string addedImagesIds, string deletedImagesIds) { if (deletedImagesIds != null) { int[] ids = GetIntIds.ConvertIdsToInt(deletedImagesIds).ToArray(); _repositoryImage.ChangeImagesToNonDeleteStatus(ids); } if (addedImagesIds != null) { int[] ids = GetIntIds.ConvertIdsToInt(addedImagesIds).ToArray(); _repositoryImage.DeleteImages(ids); } return("success");//для того чтобы front переделал строку id зиображений товара в актуальную }
public IActionResult EditArticle(CreateEditArticleViewModel model) { if (ModelState.IsValid) { //ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ var currentUser = _repositoryUser.GetCurrentUser(User.Identity.Name); //ПОЛУЧАЕМ КОМПАНИЮ РОДИТЕЛЯ ОПРЕДЕЛЯЕМУЮ ТЕКУЩИМ ПОЛЬЗОВАТЕЛЕМ Company company = new Company(); if (currentUser != null) { company = _repositoryCompany.GetUserCompany(currentUser); } else { return(RedirectToAction("Articles")); } //ФОРМИРУЕМ СПИСОК ИЗОБРАЖЕНИЙ List <RelGoodImage> relImages = new List <RelGoodImage>(); //если строка id изображений непуста тогда формируем список if (model.goodImagesIds != null) { string[] strImgids = model.goodImagesIds.Trim().Substring(0, model.goodImagesIds.Length - 1).Split('_'); foreach (var strImageId in strImgids) { if (strImageId.Length == 0) { continue; //это случай когдау товара нет изображений, но в массив все равно попадает распарсеная пустая строка } relImages.Add(new RelGoodImage { GoodId = model.Id, ImageId = Convert.ToInt32(strImageId) }); } } //формирование разделителей //model.Description = model.Description.Replace("\r\n", "[newstr]"); _repositoryArticle.SaveArticle(new Article { Id = model.Id, Title = model.Title, EnTitle = model.EnTitle, Description = model.Description, Link = model.Link, HashTags = model.HashTags, CategoryId = Convert.ToInt32(model.CategoryId), CategoryType = _repositoryCategory.GetCategoryById(Convert.ToInt32(model.CategoryId)).CategoryType, Images = relImages, UpdateTime = DateTime.Now, metaDescription = model.metaDescription, metaKeyWords = model.metaKeyWords }, company); if (model.deletedImagesIds != null) { int[] ids = GetIntIds.ConvertIdsToInt(model.deletedImagesIds).ToArray(); _repositoryImage.DeleteImages(ids); } } return(RedirectToAction("Articles")); }
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)); }