Exemplo n.º 1
0
        public async System.Threading.Tasks.Task <RedirectToActionResult> EditProfile(CreateEditCompanyViewModel model)
        {
            //if (ModelState.IsValid)
            //{
            var user    = _repositoryUser.GetCurrentUser(User.Identity.Name);
            var Company = _repositoryCompany.GetUserCompanyWithNoTrackingImages(user);

            #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 = Company.Id,
                        ImageId   = Convert.ToInt32(strImageId)
                    });
                }
            }
            #endregion

            //если меняем email
            if (user.Email != model.Email)
            {
                user.Email    = model.Email;
                user.UserName = model.Email;
                await _userManager.UpdateAsync(user);
            }

            await _signInManager.SignInAsync(user, isPersistent : false);

            #region ФОРМИРУЕМ ИЗМЕНЕНННУЮ КОМПАНИЮ
            Company.Title        = model.Name;
            Company.Description  = model.ActivityDescription;
            Company.ContactEmail = model.Email;
            Company.Telephone    = model.Telephone;
            Company.Images       = relImages;
            #endregion

            _repositoryCompany.SaveCompanyAccount(Company);
            //}
            return(RedirectToAction("EditProfile"));
        }
Exemplo n.º 2
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));
        }