示例#1
0
        public async Task <JsonResult> AddSeller(AddSellerViewModel viewModel)
        {
            var ok     = true;
            var errors = new List <string>();

            if (ModelState.IsValid)
            {
                await manageStaff.AddSellerAsync(viewModel.FormUser());
            }
            else
            {
                ok = false;
                ModelState.Values.ToList().ForEach(value =>
                {
                    value.Errors.ToList().ForEach(error =>
                    {
                        errors.Add(error.ErrorMessage);
                    });
                });
            }

            return(Json(new {
                ok,
                errors
            }));
        }
示例#2
0
        public async Task <IActionResult> Post([FromBody] AddSellerViewModel model)
        {
            Guid?parentId = null;

            if (model == null)
            {
                return(BadRequest());
            }

            if (model.ParentSellerId.HasValue)
            {
                var parentSeller = await _sellerRepo.GetAsync(model.ParentSellerId.Value);

                if (parentSeller == null)
                {
                    return(NotFound(Resources.Sellers.SellerResource.ParentSellerNotFound));
                }
                parentId = parentSeller.Id;
            }

            if (await _sellerRepo.IsExistCodeAsync(model.Code))
            {
                ModelState.AddModelError("Code", Resources.Global.Common.ThisCodeExist);
            }
            if (await _sellerRepo.IsExistNameAsync(model.Name))
            {
                ModelState.AddModelError("Name", Resources.Global.Common.ThisNameExist);
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetWithErrorsKey()));
            }

            var seller = new Seller(model.Code, model.Name, model.Note);

            if (parentId.HasValue)
            {
                seller.ParentId = parentId.Value;
            }

            var affectedRows = await _sellerRepo.AddAsync(seller);

            if (affectedRows > 0)
            {
                _sellerRepo.LoadReferences(seller);

                var viewModel = AutoMapper.Mapper.Map <SellerViewModel>(seller);

                return(CreatedAtRoute("GetSeller", new { id = seller.Number }, viewModel));
            }
            return(BadRequest());
        }
示例#3
0
        public async Task <IActionResult> AddSeller(AddSellerViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFilename = null;
                if (model.ShopPhoto != null)
                {
                    string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images\\shop");
                    uniqueFilename = Guid.NewGuid().ToString() + "_" + Path.GetFileName(model.ShopPhoto.FileName);
                    string filePath = Path.Combine(uploadsFolder, uniqueFilename);
                    using (var fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        model.ShopPhoto.CopyTo(fileStream);
                    }
                }
                Location location = await context.Locations.FindAsync(model.location);

                ShopType type = await context.shopTypes.FindAsync(model.shopType);

                ApplicationUser seller = new ApplicationUser
                {
                    ShopName     = model.ShopName,
                    UserName     = model.Email,
                    UserLocation = location,
                    LocName      = location.LocationName,
                    shopType     = type,
                    TypeName     = type.Type,
                    Email        = model.Email,
                    AddrLine1    = model.AddressLine1,
                    AddrLine2    = model.AddressLine2,
                    PinCode      = model.PinCode,
                    PhoneNumber  = model.PhoneNumber,
                    PhotoPath    = uniqueFilename,
                    IsShopOpen   = false
                };

                var result = await userManager.CreateAsync(seller, model.Password);

                if (result.Succeeded)
                {
                    await userManager.AddToRoleAsync(seller, "Seller");

                    ModelState.Clear();
                    TempData["Success"] = "Shop Added!";
                    return(View(model));
                }
            }
            return(View(model));
        }