public IHttpActionResult EditUserProfile(EditProfilBindingModel bindingModel)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            if (bindingModel == null)
            {
                return this.BadRequest("Invalid data.");
            }

            var userId = this.UserIdProvider.GetUserId();
            var user = this.Data.Users.Find(userId);

            if (bindingModel.Email != null)
            {
                bool isEmailFree = this.Data
                    .Users
                    .All()
                    .FirstOrDefault(u => u.Email == bindingModel.Email) == null;
                if (!isEmailFree)
                {
                    return this.BadRequest("Email is already taken by another user.");
                }

                user.Email = bindingModel.Email;
            }

            if (bindingModel.Name != null)
            {
                user.Name = bindingModel.Name;
            }

            if (bindingModel.Gender != null)
            {
                user.Gender = bindingModel.Gender;
            }

            if (bindingModel.ProfileImageData != null && this.IsValidBase64Format(bindingModel.ProfileImageData))
            {
                user.ProfileImageData = string.Format(
                    "{0}{1}", "data:image/jpg;base64,", bindingModel.ProfileImageData);
            }

            if (bindingModel.CoverImageData != null && this.IsValidBase64Format(bindingModel.CoverImageData))
            {
                user.CoverImageData = string.Format(
                    "{0}{1}", "data:image/jpg;base64,", bindingModel.CoverImageData);
            }

            this.Data.SaveChanges();

            return this.Ok();
        }
Exemplo n.º 2
0
        public IHttpActionResult EditUserProfile(EditProfilBindingModel bindingModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (bindingModel == null)
            {
                return(this.BadRequest("Invalid data."));
            }

            var userId = this.UserIdProvider.GetUserId();
            var user   = this.Data.Users.Find(userId);

            if (bindingModel.Email != null)
            {
                bool isEmailFree = this.Data
                                   .Users
                                   .All()
                                   .FirstOrDefault(u => u.Email == bindingModel.Email) == null;
                if (!isEmailFree)
                {
                    return(this.BadRequest("Email is already taken by another user."));
                }

                user.Email = bindingModel.Email;
            }

            if (bindingModel.Name != null)
            {
                user.Name = bindingModel.Name;
            }

            if (bindingModel.Gender != null)
            {
                user.Gender = bindingModel.Gender;
            }

            if (bindingModel.ProfileImageData != null && this.IsValidBase64Format(bindingModel.ProfileImageData))
            {
                user.ProfileImageData = string.Format(
                    "{0}{1}", "data:image/jpg;base64,", bindingModel.ProfileImageData);
            }

            if (bindingModel.CoverImageData != null && this.IsValidBase64Format(bindingModel.CoverImageData))
            {
                user.CoverImageData = string.Format(
                    "{0}{1}", "data:image/jpg;base64,", bindingModel.CoverImageData);
            }

            this.Data.SaveChanges();

            return(this.Ok());
        }