public DTO.UserMng.UserProfile DB2DTO_UserProfile(UserMng_UserProfile_View dbItem) { DTO.UserMng.UserProfile result = AutoMapper.Mapper.Map <UserMng_UserProfile_View, DTO.UserMng.UserProfile>(dbItem); result.AffectivePermissions = new List <DTO.UserMng.UserPermission>(); result.AffectivePermissions = result.UserPermissions.Select(o => new DTO.UserMng.UserPermission() { CanApprove = o.CanApprove, CanCreate = o.CanCreate, CanDelete = o.CanDelete, CanPrint = o.CanPrint, CanRead = o.CanRead, CanReset = o.CanReset, CanUpdate = o.CanUpdate, DisplayOrder = o.DisplayOrder, DisplayText = o.DisplayText, ModuleID = o.ModuleID, ParentID = o.ParentID, UserPermissionID = o.UserPermissionID }).ToList(); foreach (UserMng_UserGroupPermission_View dbGroupPermission in dbItem.UserMng_UserGroupPermission_View) { DTO.UserMng.UserPermission dtoPermission = result.AffectivePermissions.FirstOrDefault(o => o.ModuleID == dbGroupPermission.ModuleID.Value); if (dbGroupPermission.CanCreate.HasValue && dbGroupPermission.CanCreate.Value) { dtoPermission.CanCreate = true; } if (dbGroupPermission.CanRead.HasValue && dbGroupPermission.CanRead.Value) { dtoPermission.CanRead = true; } if (dbGroupPermission.CanUpdate.HasValue && dbGroupPermission.CanUpdate.Value) { dtoPermission.CanUpdate = true; } if (dbGroupPermission.CanDelete.HasValue && dbGroupPermission.CanDelete.Value) { dtoPermission.CanDelete = true; } if (dbGroupPermission.CanApprove.HasValue && dbGroupPermission.CanApprove.Value) { dtoPermission.CanApprove = true; } if (dbGroupPermission.CanReset.HasValue && dbGroupPermission.CanReset.Value) { dtoPermission.CanReset = true; } if (dbGroupPermission.CanPrint.HasValue && dbGroupPermission.CanPrint.Value) { dtoPermission.CanPrint = true; } } return(result); }
public void DTO2DB(DTO.UserMng.UserProfile dtoItem, ref UserProfile dbItem) { // map fields AutoMapper.Mapper.Map <DTO.UserMng.UserProfile, UserProfile>(dtoItem, dbItem); dbItem.UpdatedDate = DateTime.Now; if (!string.IsNullOrEmpty(dtoItem.DateOfBirth)) { try { dbItem.DateOfBirth = DateTime.ParseExact(dtoItem.DateOfBirth, "d", new System.Globalization.CultureInfo("vi-VN")); } catch { dbItem.DateOfBirth = null; } } // map factory access if (dtoItem.FactoryAccesses != null) { // check for child rows deleted foreach (UserFactoryAccess dbFactoryAccess in dbItem.UserFactoryAccess.ToArray()) { if (!dtoItem.FactoryAccesses.Select(o => o.UserFactoryAccessID).Contains(dbFactoryAccess.UserFactoryAccessID)) { dbItem.UserFactoryAccess.Remove(dbFactoryAccess); } } // map child rows foreach (DTO.UserMng.FactoryAccess dtoFactoryAccess in dtoItem.FactoryAccesses) { UserFactoryAccess dbFactoryAccess; if (dtoFactoryAccess.UserFactoryAccessID <= 0) { dbFactoryAccess = new UserFactoryAccess(); dbItem.UserFactoryAccess.Add(dbFactoryAccess); } else { dbFactoryAccess = dbItem.UserFactoryAccess.FirstOrDefault(o => o.UserFactoryAccessID == dtoFactoryAccess.UserFactoryAccessID); } if (dbFactoryAccess != null) { AutoMapper.Mapper.Map <DTO.UserMng.FactoryAccess, UserFactoryAccess>(dtoFactoryAccess, dbFactoryAccess); } } } // map user permission if (dtoItem.UserPermissions != null) { // check for child rows deleted foreach (UserPermission dbPermission in dbItem.UserPermission.ToArray()) { if (!dtoItem.UserPermissions.Select(o => o.UserPermissionID).Contains(dbPermission.UserPermissionID)) { dbItem.UserPermission.Remove(dbPermission); } } // map child rows foreach (DTO.UserMng.UserPermission dtoPermission in dtoItem.UserPermissions) { UserPermission dbPermission; if (dtoPermission.UserPermissionID <= 0) { dbPermission = new UserPermission(); dbItem.UserPermission.Add(dbPermission); } else { dbPermission = dbItem.UserPermission.FirstOrDefault(o => o.UserPermissionID == dtoPermission.UserPermissionID); } AutoMapper.Mapper.Map <DTO.UserMng.UserPermission, UserPermission>(dtoPermission, dbPermission); } } }