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