public async Task <ActionResult> ProfileEdit_Partial(EditModel model) { using (UserInfoDataProvider userInfoDP = new UserInfoDataProvider()) { Manager.NeedUser(); bool newUser = false; UserInfo userInfo = await userInfoDP.GetItemAsync(model.UserId); if (userInfo == null) { newUser = true; userInfo = new UserInfo(); } model.UpdateData(userInfo); // in case of apply, we're just updating the form with new fields - we chose a postback when switching // the country as potentially many different address formats could be supported which could overwhelm client side processing // so we only provide the fields for one country to the form. if (IsApply) { ModelState.Clear(); return(PartialView(model)); } if (!ModelState.IsValid) { return(PartialView(model)); } userInfo = model.GetData(userInfo); // merge new data into original model.SetData(userInfo); // and all the data back into model for final display if (newUser) { await userInfoDP.AddItemAsync(userInfo); } else { await userInfoDP.UpdateItemAsync(userInfo); } string msg = Module.SaveMessage; if (string.IsNullOrWhiteSpace(msg)) { msg = this.__ResStr("okSaved", "Profile saved"); } if (string.IsNullOrWhiteSpace(Module.PostSaveUrl)) { return(FormProcessed(model, msg)); } else { return(FormProcessed(model, msg, OnClose: OnCloseEnum.GotoNewPage, NextPage: Module.PostSaveUrl)); } } }
public async Task <ActionResult> ProfileEdit() { Manager.NeedUser(); using (UserInfoDataProvider userInfoDP = new UserInfoDataProvider()) { EditModel model = new EditModel { }; UserInfo userInfo = await userInfoDP.GetItemAsync(Manager.UserId); if (userInfo == null) { userInfo = new UserInfo { UserId = Manager.UserId } } ; model.SetData(userInfo); model.UpdateData(userInfo); return(View(model)); } }