public async Task <bool> Save(UserRoleMapDTO _dto, Guid Id, int EntityState) { UserRolesMap _userRolesMap = new UserRolesMap(); if (_dto != null) { //usermaster.Id = ""; _userRolesMap.Id = Id; _userRolesMap.UserId = _dto.UserId; _userRolesMap.RoleId = _dto.RoleId; _userRolesMap.StatusCode = EMPConstants.Active; } if (EntityState == (int)System.Data.Entity.EntityState.Modified) { db.Entry(_userRolesMap).State = System.Data.Entity.EntityState.Modified; } else { db.UserRolesMaps.Add(_userRolesMap); } try { await db.SaveChangesAsync(); return(true); } catch (DbUpdateConcurrencyException) { if (!IsExists(_userRolesMap.Id)) { return(false); } else { throw; } } }
public async Task<int> SaveUser(UserDetailDTO _user, Guid Id, int EntityState) { UserMaster usermaster = new UserMaster(); string Password = ""; if (_user != null) { if (EntityState == (int)System.Data.Entity.EntityState.Modified) { var Existuser = db.UserMasters.Where(o => o.Id != Id && o.UserName == _user.UserName).Any(); if (Existuser) return -1; usermaster = db.UserMasters.Where(o => o.Id == Id).FirstOrDefault(); } else { var Existuser = db.UserMasters.Where(o => o.UserName == _user.UserName).Any(); if (Existuser) return -1; Password = GetRandomPassword(); usermaster.Password = PasswordManager.CryptText(Password); //"admin1" } //usermaster.Id = ""; usermaster.Id = Id; usermaster.EntityId = _user.EntityId; usermaster.CustomerId = _user.CustomerId; usermaster.FirstName = _user.FirstName; usermaster.LastName = _user.LastName; // usermaster.MiddleName = _user.MiddleName; usermaster.UserName = _user.UserName; usermaster.EmailAddress = _user.EmailAddress; usermaster.IsEmailConfirmed = _user.IsEmailConfirmed; usermaster.EmailConfirmationCode = _user.EmailConfirmationCode; usermaster.PasswordResetCode = _user.PasswordResetCode; usermaster.LastLoginDate = _user.LastLoginDate; usermaster.IsActive = true; usermaster.IsActiveDate = DateTime.Now; usermaster.StatusCode = EMPConstants.Active; if (EntityState == (int)System.Data.Entity.EntityState.Modified) { usermaster.CreatedBy = _user.UserId; usermaster.CreatedDate = DateTime.Now; usermaster.LastUpdatedDate = DateTime.Now; usermaster.LastUpdatedBy = _user.UserId; db.Entry(usermaster).State = System.Data.Entity.EntityState.Modified; } else { usermaster.LastUpdatedDate = DateTime.Now; usermaster.LastUpdatedBy = _user.UserId; db.UserMasters.Add(usermaster); EmailNotification _email = new EmailNotification(); _email.CreatedBy = _user.UserId; _email.CreatedDate = DateTime.Now; _email.EmailCC = ""; _email.EmailContent = ""; _email.EmailSubject = EMPConstants.NewUserMailSubject; _email.EmailTo = _user.EmailAddress; _email.EmailType = (int)EMPConstants.EmailTypes.NewAdminUser; _email.IsSent = false; _email.Parameters = _user.UserName + "$|$" + Password; db.EmailNotifications.Add(_email); } // User Group Mapping Saving UserGroupMap usergroup = new UserGroupMap(); UserGroupMapDTO UserGroupMapDto = await _UserGroupService.GetByUserId(usermaster.Id); bool IsNewGroup = true; if (UserGroupMapDto != null) { if (UserGroupMapDto.Id != Guid.Empty) { IsNewGroup = false; usergroup.Id = UserGroupMapDto.Id; usergroup.GroupId = _user.Groups.Id; usergroup.UserId = usermaster.Id; usergroup.StatusCode = EMPConstants.Active; db.Entry(usergroup).State = System.Data.Entity.EntityState.Modified; } } if (IsNewGroup) { usergroup.Id = Guid.NewGuid(); usergroup.GroupId = _user.Groups.Id; usergroup.UserId = usermaster.Id; usergroup.StatusCode = EMPConstants.Active; db.UserGroupMaps.Add(usergroup); } if (_user.Roles.ToList().Count > 0) { if (EntityState == (int)System.Data.Entity.EntityState.Modified) { var UserRole1 = db.UserRolesMaps.Where(o => o.UserId == _user.Id).ToList(); if (UserRole1.Count() > 0) db.UserRolesMaps.RemoveRange(UserRole1); } List<UserRolesMap> _UserRolesMapList = new List<UserRolesMap>(); foreach (RoleDTO Role in _user.Roles) { UserRolesMap _UserRolesMap = new UserRolesMap(); _UserRolesMap.Id = Guid.NewGuid(); _UserRolesMap.UserId = usermaster.Id; _UserRolesMap.RoleId = Role.Id; _UserRolesMap.StatusCode = EMPConstants.Active; _UserRolesMapList.Add(_UserRolesMap); } db.UserRolesMaps.AddRange(_UserRolesMapList); } } try { await db.SaveChangesAsync(); db.Dispose(); return 1; } catch (DbUpdateConcurrencyException) { return 0; } }