public ComplexUserAvatarModel SaveUserAvatar(Guid userId, byte[] avatarBlob) { using (var context = new UserAvatarContext()) { var existingAvatar = context.Objects.FirstOrDefault(model => model.ParentId == userId); if (existingAvatar == null) { var newAvatar = new ComplexUserAvatarModel { ParentId = userId, AvatarBlob = avatarBlob, LastModified = DateTime.Now }; context.Objects.Add(newAvatar); } else { existingAvatar.AvatarBlob = avatarBlob; existingAvatar.LastModified = DateTime.Now; } context.SaveChanges(); return(existingAvatar); } }
public static void AcceptProperties(this ComplexUserAvatarModel acceptor, ComplexUserAvatarModel donor) { if (acceptor.Id != donor.Id) { throw new InvalidOperationException($"Avatar id mismatch"); } if (acceptor.ParentId != donor.ParentId) { throw new InvalidOperationException($"Avatar parent id mismatch"); } acceptor.AvatarBlob = donor.AvatarBlob; acceptor.LastModified = DateTime.Now; }
public ComplexUserAvatarModel SaveUserAvatar(ComplexUserAvatarModel avatarModel) { using (var context = new UserAvatarContext()) { var existingAvatar = context.Objects.FirstOrDefault(model => model.ParentId == avatarModel.ParentId); if (existingAvatar == null) { context.Objects.Add(avatarModel); } else { existingAvatar.AcceptProperties(avatarModel); } context.SaveChanges(); return(existingAvatar); } }