public BadgeViewModel(Badge badge) { if (badge != null) { Description = badge.Description; GroupId = badge.GroupId; Id = badge.Id; Image = ImageService.GetImageUrl<Badge>(badge.Image); IsAcquired = badge.IsAcquired; Title = badge.Title; if (badge.Type.HasValue) Type = (BadgeType)badge.Type.Value; UserId = badge.UserId; Value = badge.Value; AcquireDate = badge.AcquireDate; } }
public virtual Badge AwardGroup(string groupUrl) { var group = GroupService.GetGroupByLabelOrId(groupUrl); if (group == null) throw new BusinessLogicException("Группа не найдена"); var badge = new Badge { Description = Description, GroupId = group.Id, Image = Image, IsAcquired = IsAcquired, Title = Title, Value = Value }; if (Type.HasValue) badge.Type = (int)Type.Value; if (IsAcquired) badge.AcquireDate = DateTime.Now; DataService.PerThread.BadgeSet.AddObject(badge); DataService.PerThread.SaveChanges(); return badge; }
public virtual Badge AwardUser(Guid userId) { var user = DataService.PerThread.BaseUserSet.OfType<User>().SingleOrDefault(x => x.Id == userId); if (user == null) throw new BusinessLogicException("Пользователь не найден"); Badge badge = null; if (Type.HasValue) badge = user.Badges.SingleOrDefault(x => x.Type == (int)Type.Value); if (badge != null) { badge.Value = badge.Value ?? 1; badge.Value++; } else { badge = new Badge(); DataService.PerThread.BadgeSet.AddObject(badge); } badge.Description = Description; badge.Image = Image; badge.IsAcquired = IsAcquired; badge.Title = Title; badge.UserId = userId; if (Type.HasValue) badge.Type = (int)Type.Value; if (IsAcquired) badge.AcquireDate = DateTime.Now; DataService.PerThread.SaveChanges(); return badge; }