Пример #1
0
        /// <summary>
        /// Update user address
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public virtual async Task <ResultModel> UpdateUserAddressAsync(EditUserProfileAddressViewModel model)
        {
            var resultModel = new ResultModel();
            var user        = (await _userManager.GetCurrentUserAsync()).Result;

            if (user == null)
            {
                return(new NotAuthorizedResultModel().ToBase());
            }
            var currentAddress = await _context.UserAddresses.FirstOrDefaultAsync(x => x.Id.Equals(model.Id));

            if (currentAddress == null && model.Id != Guid.Empty)
            {
                if (!await _context.UserAddresses.AnyAsync(x => x.UserId == user.Id))
                {
                    var newAddress = _mapper.Map <AddNewAddressViewModel>(model);
                    newAddress.IsDefault = true;
                    var addReq = await AddAddressAsync(newAddress);

                    return(addReq.ToBase());
                }
            }

            if (currentAddress == null)
            {
                resultModel.Errors.Add(new ErrorModel(string.Empty, "Address not found"));
                return(resultModel);
            }

            if (model.IsDefault)
            {
                _context.UserAddresses
                .Where(x => x.UserId.Equals(currentAddress.UserId))
                .ToList().ForEach(b => b.IsDefault = false);
            }

            currentAddress.CountryId         = model.CountryId;
            currentAddress.StateOrProvinceId = model.CityId;
            currentAddress.AddressLine1      = model.AddressLine1;
            currentAddress.AddressLine2      = model.AddressLine2;
            currentAddress.ContactName       = model.ContactName;
            currentAddress.Phone             = model.Phone;
            currentAddress.ZipCode           = model.ZipCode;
            currentAddress.IsDefault         = model.IsDefault;
            currentAddress.Region            = model.Region;

            _context.Update(currentAddress);
            var result = await _context.PushAsync();

            return(result);
        }
        /// <inheritdoc/>
        public async Task <bool> UpdateProfileAsync(ProfileDTO profileDTO)
        {
            var profile = await _profileContext.Profiles.FirstOrDefaultAsync(p => p.Id == profileDTO.Id);

            if (profile == null)
            {
                return(false);
            }

            profile.FirstName  = profileDTO.FirstName;
            profile.LastName   = profileDTO.LastName;
            profile.MiddleName = profileDTO.MiddleName;
            profile.Passport   = profileDTO.Passport;
            profile.Gender     = profileDTO.Gender;
            profile.Height     = profileDTO.Height;
            profile.Weight     = profileDTO.Weight;

            _profileContext.Update(profile);
            await _profileContext.SaveChangesAsync(new CancellationToken());

            return(true);
        }