示例#1
0
        public static void DeserializeNonUrdmsUsers <T>(this IUserManagementViewModel model, NameValueCollection formParams)
        {
            model.NonUrdmsUsers = new List <NonUrdmsUserViewModel>();
            var rows = formParams.GetValues("nonurdms.users.row");

            if (rows != null)
            {
                foreach (var row in rows)
                {
                    var userParts    = row.Split(',');
                    var id           = int.Parse(userParts[0]);
                    var isDelete     = id == 0 ? formParams["RemoveNonUrdmsUser" + userParts[1]] : formParams["RemoveNonUrdmsUser" + id];
                    var relationship = (int)(object)(id == 0
                                                                                   ? formParams["NonUrdmsUserRelationship" + userParts[1]]
                                                                                   : formParams["NonUrdmsUserRelationship" + id]).GetEnumValue <T>();

                    var isRemoveOperation = !isDelete.Contains("true") && formParams["DeleteNonUrdmsUser"] != null;
                    var isAddOperation    = formParams["AddNonUrdmsUser"] != null;
                    var isSubmitOperation = formParams["DeleteNonUrdmsUser"] == null && formParams["AddNonUrdmsUser"] == null;

                    if (isRemoveOperation || isAddOperation || isSubmitOperation)
                    {
                        var user = new NonUrdmsUserViewModel
                        {
                            Id           = id,
                            FullName     = userParts[2],
                            Relationship = relationship
                        };
                        model.NonUrdmsUsers.Add(user);
                    }
                }
            }
        }
 private static void UpdateParties(this IEnumerable <ProjectParty> entities, IUserManagementViewModel model)
 {
     foreach (var entity in entities.Where(o => o.Id > 0))
     {
         dynamic vm = !string.IsNullOrWhiteSpace(entity.Party.UserId) ? model.UrdmsUsers.SingleOrDefault(o => o.Id == entity.Id) : (object)model.NonUrdmsUsers.SingleOrDefault(o => o.Id == entity.Id);
         if (vm != null)
         {
             var role = (AccessRole)vm.Relationship;
             entity.Role = role;
         }
     }
 }
        public static IList <T> MapFrom <T>(this IList <T> entities, IUserManagementViewModel model)
            where T : class, IUserManagementParty
        {
            if (model == null || (model.UrdmsUsers.IsEmpty() && model.NonUrdmsUsers.IsEmpty()))
            {
                return(entities);
            }

            if (typeof(T) == typeof(ProjectParty))
            {
                entities.Cast <ProjectParty>().UpdateParties(model);
                entities.AddRange(GetNewProjectParties(model).Cast <T>());
            }
            else if (typeof(T) == typeof(DataCollectionParty))
            {
                entities.Cast <DataCollectionParty>().UpdateParties(model);
                entities.AddRange(GetNewDataCollectionParties(model).Cast <T>());
            }

            return(entities);
        }
        private static IEnumerable <DataCollectionParty> GetNewDataCollectionParties(IUserManagementViewModel model)
        {
            var newNonUrdmsUsers = from o in model.NonUrdmsUsers
                                   where o.Id < 1
                                   select new DataCollectionParty
            {
                Party = new Party {
                    FullName = o.FullName, Id = o.PartyId, Organisation = o.Organisation
                },
                Relationship = (DataCollectionRelationshipType)o.Relationship
            };

            var newUrdmsUsers = from o in model.UrdmsUsers
                                where o.Id < 1
                                select new DataCollectionParty
            {
                Party = new Party {
                    FullName = o.FullName, Id = o.PartyId, UserId = o.UserId, Organisation = ""
                },                                                                                                                                                              // TODO: Insert your organisation here
                Relationship = (DataCollectionRelationshipType)o.Relationship
            };

            return(newNonUrdmsUsers.Union(newUrdmsUsers));
        }