Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }