예제 #1
0
        public async Task <IHttpActionResult> SaveUserContact()
        {
            var userContact    = new UserContact();
            var httpRequest    = HttpContext.Current.Request;
            var requestedFiles = httpRequest.Files;
            NameValueCollection formValueCollection = httpRequest.Form;

            try
            {
                foreach (string keyVal in formValueCollection.AllKeys)
                {
                    PropertyInfo objProperty = userContact.GetType().GetProperty(keyVal, BindingFlags.Public | BindingFlags.Instance);
                    if (objProperty != null)
                    {
                        objProperty.SetValue(userContact, formValueCollection[keyVal], null);
                    }
                }

                foreach (string file in requestedFiles)
                {
                    var postedFile = httpRequest.Files[file];
                    var filePath   = HttpContext.Current.Server.MapPath("~/Content/Uploaded/" + postedFile.FileName);
                    postedFile.SaveAs(filePath);
                    switch (file)
                    {
                    case "Avatar":
                        userContact.Avatar = postedFile.FileName;
                        break;

                    case "Signature":
                        userContact.Signature = postedFile.FileName;
                        break;

                    default:
                        break;
                    }
                }

                //Save Data to Database
                db.UserContacts.Add(userContact);
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (UserContactExists(userContact.UserID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            return(Json("Registered!! Boom!!!"));
        }