示例#1
0
        public HttpResponseMessage UpdateProfile(ProfileDetailsDTO profileDetailsDTO, int userId)
        {
            VolunteerMatchDbContext db = new VolunteerMatchDbContext();
            Member member = db.Members.Where(x => x.id == userId).FirstOrDefault();

            try
            {
                if (profileDetailsDTO.unixDate == null)
                {
                    member.city       = profileDetailsDTO.city;
                    member.biography  = profileDetailsDTO.bio;
                    member.occupation = profileDetailsDTO.occupation;
                    member.gender     = profileDetailsDTO.gender;
                    member.pictureUrl = profileDetailsDTO.pictureUrl;
                }
                else
                {
                    member.city        = profileDetailsDTO.city;
                    member.biography   = profileDetailsDTO.bio;
                    member.occupation  = profileDetailsDTO.occupation;
                    member.gender      = profileDetailsDTO.gender;
                    member.pictureUrl  = profileDetailsDTO.pictureUrl;
                    member.dateOfBirth = profileDetailsDTO.unixDate;
                }

                if (profileDetailsDTO.hobbies != null)
                {
                    foreach (MembersHobby hobby in db.MembersHobbies.Where(x => x.memberId == userId))
                    {
                        MembersHobby membersHobby = hobby;
                        db.MembersHobbies.Remove(membersHobby);
                    }

                    foreach (HobbiesDTO hobby in profileDetailsDTO.hobbies)
                    {
                        MembersHobby hobbies = new MembersHobby();
                        hobbies.hobbyId  = hobby.id;
                        hobbies.memberId = member.id;
                        db.MembersHobbies.Add(hobbies);
                    }
                }
                db.SaveChanges();
            }

            catch (DbEntityValidationException ex)
            {
                string errors = "";
                foreach (DbEntityValidationResult vr in ex.EntityValidationErrors)
                {
                    foreach (DbValidationError er in vr.ValidationErrors)
                    {
                        errors += $"PropertyName - {er.PropertyName }, Error {er.ErrorMessage} <br/>";
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
            catch (DbUpdateException ex)
            {
                DbUpdateException e      = (DbUpdateException)ex;
                string            errors = "";
                foreach (DbEntityEntry entry in e.Entries)
                {
                    errors += $"Error in entity - {entry.Entity.GetType().Name}, entity state - {entry.State} <br/>";

                    foreach (string prop in entry.CurrentValues.PropertyNames)
                    {
                        errors += $"for column - {prop}, value - {entry.CurrentValues[prop]} <br/>";
                    }
                    errors += "---------------";
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, "Profile updated successfully"));
        }
示例#2
0
        public HttpResponseMessage Register(MemberSignupDTO memberSignupDTO)
        {
            VolunteerMatchDbContext db = new VolunteerMatchDbContext();

            try
            {
                Member member = new Member();
                member.email            = memberSignupDTO.email;
                member.city             = memberSignupDTO.city;
                member.password         = memberSignupDTO.password;
                member.fullName         = memberSignupDTO.fullName;
                member.pictureUrl       = memberSignupDTO.pictureUrl;
                member.occupation       = memberSignupDTO.occupation;
                member.gender           = memberSignupDTO.gender;
                member.biography        = memberSignupDTO.bio;
                member.dateOfBirth      = memberSignupDTO.dateOfBirth;
                member.lastLocationLat  = 0;
                member.lastLocationLong = 0;


                db.Members.Add(member);
                db.SaveChanges();
                FeedSetting feedSetting = new FeedSetting
                {
                    memberId            = member.id,
                    memberType          = memberSignupDTO.feedSettings.memberType,
                    participantAgeRange = memberSignupDTO.feedSettings.participantAgeRange,
                    participantGender   = memberSignupDTO.feedSettings.participantGender,
                    postLocation        = memberSignupDTO.feedSettings.postLocation
                };
                db.FeedSettings.Add(feedSetting);

                foreach (HobbiesDTO hobby in memberSignupDTO.hobbies)
                {
                    MembersHobby hobbies = new MembersHobby();
                    hobbies.hobbyId  = hobby.id;
                    hobbies.memberId = member.id;
                    db.MembersHobbies.Add(hobbies);
                }


                db.SaveChanges();

                AuthorizedMemberDetailsDTO authorizedMemberDetailsDTO = new AuthorizedMemberDetailsDTO()
                {
                    id                = member.id,
                    name              = member.fullName,
                    participantAge    = memberSignupDTO.feedSettings.participantAgeRange,
                    participantGender = memberSignupDTO.feedSettings.participantGender,
                    helpType          = memberSignupDTO.feedSettings.memberType,
                    meetingLocation   = memberSignupDTO.feedSettings.postLocation,
                    pictureUrl        = member.pictureUrl
                };

                return(Request.CreateResponse(HttpStatusCode.OK, authorizedMemberDetailsDTO));
            }
            catch (DbEntityValidationException ex)
            {
                string errors = "";
                foreach (DbEntityValidationResult vr in ex.EntityValidationErrors)
                {
                    foreach (DbValidationError er in vr.ValidationErrors)
                    {
                        errors += $"PropertyName - {er.PropertyName }, Error {er.ErrorMessage} <br/>";
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
            catch (DbUpdateException ex)
            {
                DbUpdateException e      = (DbUpdateException)ex;
                string            errors = "";
                foreach (DbEntityEntry entry in e.Entries)
                {
                    errors += $"Error in entity - {entry.Entity.GetType().Name}, entity state - {entry.State} <br/>";

                    foreach (string prop in entry.CurrentValues.PropertyNames)
                    {
                        errors += $"for column - {prop}, value - {entry.CurrentValues[prop]} <br/>";
                    }
                    errors += "---------------";
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }