public IHttpActionResult Add([FromBody] AddUserForm form) { Dictionary <string, string> errorList; if (!ModelState.IsValid) { errorList = AppUtils.Validation.GetErrorDictionary(ModelState); return(Content( HttpStatusCode.BadRequest, new ResponseWrapper <object>(HttpStatusCode.BadRequest, errorList) )); } uint loggedInUserId = Convert.ToUInt32(RequestContext.Principal.Identity.Name); User user = new User(); user.Username = form.Username; user.IsActive = form.IsActive; user.FullName = form.FullName; user.EmailAddress = form.EmailAddress; user.Designation = form.Designation; user.MobileNumber = form.MobileNumber; user.UserTypeId = (byte)UserType.None; user.Password = _passwordEncoder.HashPassword("123"); user.CreatedBy = loggedInUserId; var conn = AppSetting.Db.OpenConnection(); var trans = conn.BeginTransaction(); try { if (user.DAL_Add(conn, trans)) { bool hasErrorTransaction = form.Roles.Exists( item => { UserRole userRole = new UserRole { UserId = user.UserId, RoleId = item, CreatedBy = loggedInUserId, }; return(!userRole.DAL_Add(conn, trans)); } ); if (!hasErrorTransaction) { trans.Commit(); return(Ok(new ResponseWrapper <object>(HttpStatusCode.OK, new { Id = user.UserId }))); } } trans.Rollback(); } catch (Exception) { trans.Rollback(); } finally { AppSetting.Db.CloseConnection(ref conn); } ModelState.AddModelError("", "Failed to process your request"); errorList = AppUtils.Validation.GetErrorDictionary(ModelState); return(Content( HttpStatusCode.BadRequest, new ResponseWrapper <object>(HttpStatusCode.BadRequest, errorList) )); }