示例#1
0
        public async Task <bool> EditMemberDetails(string email, EditMemberDetails editMemberDetails)
        {
            var member = await GetMemberByEmail(email);

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

            if (editMemberDetails.UserImage != null)
            {
                var path = Path.Combine(
                    AppConstants.DataFilesPath,
                    email,
                    editMemberDetails.UserImage.FileName);
                await _fileService.SaveImage(path, editMemberDetails.UserImage);

                string thumbnailPath = _fileService.CreateThumbnailFromImage(path, editMemberDetails.UserImage.FileName);
                member.PhotoPath          = path;
                member.PhotoThumbnailPath = thumbnailPath;
            }

            member.DateOfBirth     = editMemberDetails.DateOfBirth;
            member.FirstName       = editMemberDetails.FirstName;
            member.LastName        = editMemberDetails.LastName;
            member.MemberPositions = new List <MemberPositions>();
            if (editMemberDetails.PreferedPosition.HasValue)
            {
                member.MemberPositions.Add(new MemberPositions()
                {
                    Position = new Position
                    {
                        Name = editMemberDetails.PreferedPosition.Value.ToString()
                    }
                });
            }

            member.Weight = editMemberDetails.Weight;
            member.Height = editMemberDetails.Height;

            _membersRepository.EditMember(member);
            return(true);
        }
示例#2
0
        public static async Task <HttpResponseMessage> EditMemberDetails(EditMemberDetails editMemberDetails)
        {
            var content = new MultipartFormDataContent();

            if (editMemberDetails.File != null)
            {
                HttpContent fileStreamContent = new StreamContent(editMemberDetails.File);
                fileStreamContent.Headers.ContentDisposition =
                    new ContentDispositionHeaderValue("form-data")
                {
                    Name = "userImage", FileName = "person-placeholder.jpg"
                };
                fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue("application/jpeg");
                content.Add(fileStreamContent, "userImage");
            }
            AddStringContent(content, editMemberDetails);

            return(await _httpClient.PostAsync(
                       string.Format(ApiConstants.EditMemberDetailsEndpoint, editMemberDetails.Email),
                       content));
        }
示例#3
0
        private async void EditDetails_Click(object sender, EventArgs e)
        {
            bool hasError = false;

            if (string.IsNullOrWhiteSpace(_firstName.Text))
            {
                _firstName.Error = "Въведете Вашето име";
                hasError         = true;
            }

            if (string.IsNullOrWhiteSpace(_lastName.Text))
            {
                _lastName.Error = "Въведете Вашата фамилия";
                hasError        = true;
            }

            Role     role             = (Role)Enum.Parse(typeof(Role), _account.Properties["roles"]);
            int      selectedPosition = _positionsSpinner.SelectedItemPosition + 1;
            Position?position         =
                string.Compare(role.ToString(), Role.Player.ToString(), true) == 0 ?
                (Position)selectedPosition :
                default(Position?);

            double.TryParse(_weight.Text, out double weightValue);
            double.TryParse(_height.Text, out double heightValue);

            if (weightValue == 0 && role == Role.Player)
            {
                _weight.Error = "Това поле е задължително за играчи";
                hasError      = true;
            }

            if (heightValue == 0 && role == Role.Player)
            {
                _height.Error = "Това поле е задължително за играчи";
                hasError      = true;
            }

            if (hasError)
            {
                return;
            }

            var editMemberDetails = new EditMemberDetails
            {
                Email            = _account.Username,
                FirstName        = _firstName.Text,
                LastName         = _lastName.Text,
                PreferedPosition = position,
                Weight           = position.HasValue ? weightValue : default(double?),
                Height           = position.HasValue ? heightValue : default(double?),
                File             = _imageStream,
                DateOfBirth      = _dateOfBirth.DateTime
            };

            AndHUD.Shared.Show(this, "Промяна…");
            HttpResponseMessage httpResponse = await RestManager.EditMemberDetails(editMemberDetails);

            string response = await httpResponse.Content.ReadAsStringAsync();

            if (httpResponse.IsSuccessStatusCode)
            {
                Intent intent = new Intent(this, typeof(UserProfileActivity));
                AndHUD.Shared.Dismiss(this);
                StartActivity(intent);
            }
            else
            {
                AndHUD.Shared.Dismiss(this);
                Toast.MakeText(this, response, ToastLength.Long).Show();
            }
        }
示例#4
0
        public async Task <IActionResult> EditMemberDetails([FromRoute] string email, [FromForm] EditMemberDetails editMemberDetails)
        {
            bool isSuccess = await _membersService.EditMemberDetails(email, editMemberDetails);

            if (isSuccess)
            {
                await _membersService.SaveChangesAsync();

                return(Ok());
            }

            return(BadRequest());
        }