示例#1
0
 public bool DeleteArticleImages(string goodImageIds)
 {
     if (goodImageIds != null)
     {
         int[] ids = GetIntIds.ConvertIdsToInt(goodImageIds).ToArray();
         _repositoryImage.DeleteImages(ids);
     }
     return(true);
 }
示例#2
0
 public bool DeleteCompanyImages(string companyImagesIds)
 {
     if (companyImagesIds != null)
     {
         int[] ids = GetIntIds.ConvertIdsToInt(companyImagesIds).ToArray();
         _repositoryImage.DeleteImages(ids);
     }
     return(true);
 }
示例#3
0
 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 зиображений товара в актуальную
 }
示例#4
0
        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"));
        }
示例#5
0
        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));
        }