Пример #1
0
        /// <summary>
        /// Maps a model to an existing entity instance
        /// </summary>
        /// <param name="model"></param>
        /// <param name="entity"></param>
        public static void ToEntity(this User model, EntityModels.User entity)
        {
            Mapper.Map(model, entity);

            foreach (var userLogin in model.LastLoginDatesByClient)
            {
                var existingLogin = entity.UserLogins.FirstOrDefault(l =>
                                                                     l.ClientId.Equals(userLogin.ClientId, StringComparison.OrdinalIgnoreCase));

                if (existingLogin != null)
                {
                    existingLogin.LoginDate = userLogin.LoginDate;
                }
                else
                {
                    entity.UserLogins.Add(new UserLogin {
                        ClientId = userLogin.ClientId, LoginDate = userLogin.LoginDate
                    });
                }
            }

            foreach (var claim in model.Claims)
            {
                var existingClaim =
                    entity.Claims.FirstOrDefault(c => c.Type == claim.Type && c.Value == claim.Value);
                if (existingClaim == null)
                {
                    entity.Claims.Add(new UserClaim {
                        Type = claim.Type, Value = claim.Value
                    });
                }
            }

            var claimsToRemove = new List <UserClaim>();

            foreach (var existingUserClaim in entity.Claims)
            {
                var newClaim = model.Claims.FirstOrDefault(
                    c => c.Type == existingUserClaim.Type && c.Value == existingUserClaim.Value);
                if (newClaim == null)
                {
                    claimsToRemove.Add(existingUserClaim);
                }
            }

            foreach (var claimToRemove in claimsToRemove)
            {
                entity.Claims.Remove(claimToRemove);
            }
        }
Пример #2
0
 /// <summary>
 /// Maps an entity to a model
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public static User ToModel(this EntityModels.User entity)
 {
     return(Mapper.Map <User>(entity));
 }