public _PetitionViewModel(Petition petition, Guid? userId) { if (petition != null) { Id = petition.Id; Title = petition.Title; Text = petition.Text; IsFinished = petition.IsFinished; IsPrivate = petition.IsPrivate; StartDate = petition.PublishDate; State = (ContentState)petition.State; GroupId = petition.GroupId; Coauthors = petition.Coauthors.Where(c => c.IsAccepted.HasValue && c.IsAccepted.Value).Select(c => new _Petition_CoauthorViewModel(c)).ToList(); SignersCount = DeclinationService.OfNumber(petition.Signers.Count, "человек", "человека", "человек"); if (userId.HasValue) IsUserSigned = petition.Signers.Count(x => x.Id == userId.Value) != 0; if (petition.PublishDate.HasValue && petition.Duration.HasValue) EndDate = petition.PublishDate.Value.AddDays(petition.Duration.Value); if (petition.IsPrivate && petition.GroupId.HasValue) Privacy = "только для членов группы"; } }
public UserDrafts_PetitionViewModel(Petition petition) { if (petition != null) { Id = petition.Id; AuthorId = petition.AuthorId; GroupId = petition.GroupId; if (petition.GroupId.HasValue) { GroupName = petition.Group.Name; GroupUrl = petition.Group.Url; if (petition.IsPrivate) Privacy = "только для членов группы"; } Controller = petition.Controller; CreationDate = petition.CreationDate; Title = petition.Title; Tags = petition.Tags.Select(x => new TagViewModel(x)).ToList(); Summary = TextHelper.CleanTags(petition.Text); if (Summary.Length > ConstHelper.MiniSummaryLength) Summary = Summary.Substring(0, ConstHelper.MiniSummaryLength) + "…"; } }
public _PetitionStatus_PetitionViewModel(Petition record, Guid? userId) { if (record != null) { GroupId = record.GroupId; if (GroupId.HasValue) { GroupName = record.Group.Name; GroupUrl = record.Group.Url; Url = record.GetUrl(); } if (record.AuthorId.HasValue) { AuthorId = record.AuthorId.Value; AuthorName = record.Author.FirstName; AuthorPatronymic = record.Author.Patronymic; AuthorSurname = record.Author.SurName; AuthorAvatar = ImageService.GetImageUrl<User>(record.Author.Avatar); if (!GroupId.HasValue) Url = record.GetUrl(); } CommentsCount = DeclinationService.OfNumber(record.Comments.Count, "комментарий", "комментария", "комментариев"); Id = record.Id; Title = record.Title; SignaturesCount = record.Signers.Count; IsFinished = record.IsFinished; if (record.Duration.HasValue && record.PublishDate.HasValue) FinishDate = record.PublishDate.Value.AddDays(record.Duration.Value); IsUserParticipant = false; if (userId.HasValue && userId != Guid.Empty) { if (record.GroupId.HasValue) { var member = GroupService.UserInGroup(userId.Value, record.GroupId.Value); if (member != null) { IsUserParticipant = true; var signature = record.Signers.Count(x=>x.Id == userId); UserSigned = (signature > 0); } } else { IsUserParticipant = true; var signature = record.Signers.Count(x => x.Id == userId); UserSigned = (signature > 0); } } } }
public GroupEditPetitionCoauthorsViewModel(Petition petition) { if (petition != null) { if (petition.GroupId.HasValue) GroupId = petition.GroupId.Value; EditPetitionCoauthors = new _EditPetitionCoauthorsViewModel(petition); } }
public GroupPetitionSignersViewModel(Petition petition) { if (petition != null) { if (petition.GroupId.HasValue) GroupId = petition.GroupId.Value; PetitionId = petition.Id; PetitionTitle = petition.Title; Signers = petition.Signers.Select(x => new GroupPetitionSigners_UserViewModel(x)).ToList(); } }
private void FixupPetition(Petition previousValue) { if (previousValue != null && ReferenceEquals(previousValue.Candidate, this)) { previousValue.Candidate = null; } if (Petition != null) { Petition.Candidate = this; } }
public _EditPetitionCoauthorsViewModel(Petition petition) { if (petition != null) { PetitionId = petition.Id; PetitionController = petition.Controller; PetitionTitle = petition.Title; Coauthors = petition.Coauthors.Select(x => new _EditPetitionCoauthors_Coauthor(x)).ToList(); } else Coauthors = new List<_EditPetitionCoauthors_Coauthor>(); }
public UserPetitionSignersViewModel(Petition petition) { if (petition != null) { if (petition.AuthorId.HasValue) { AuthorId = petition.AuthorId.Value; AuthorName = petition.Author.FullName; } PetitionId = petition.Id; PetitionTitle = petition.Title; Signers = petition.Signers.Select(x => new UserPetitionSigners_UserViewModel(x)).ToList(); } }
public GroupEditPetitionViewModel(Petition petition) { if (petition != null) { if (petition.GroupId.HasValue) { GroupId = petition.GroupId.Value; GroupName = petition.Group.Name; GroupUrl = petition.Group.Url; IsContentModeration = petition.Group.PrivacyEnum.HasFlag(GroupPrivacy.ContentModeration); } EditPetition = new _EditPetitionViewModel(petition); } }
public _EditPetitionViewModel(Petition petition) { Id = petition.Id; GroupId = petition.GroupId; if (GroupId.HasValue) { GroupUrl = petition.Group.Url; GroupName = petition.Group.Name; } AuthorId = petition.AuthorId; if (AuthorId.HasValue) { AuthorName = petition.Author.SurName + " " + petition.Author.FirstName + " " + petition.Author.Patronymic; } Title = petition.Title; Text = petition.Text; IsPrivate = petition.IsPrivate; TagTitles = TagsHelper.ConvertTagListToString(petition.Tags); }
private void FixupPetition(Petition previousValue) { if (previousValue != null && previousValue.Coauthors.Contains(this)) { previousValue.Coauthors.Remove(this); } if (Petition != null) { if (!Petition.Coauthors.Contains(this)) { Petition.Coauthors.Add(this); } if (PetitionId != Petition.Id) { PetitionId = Petition.Id; } } }
public Petition CreatePetition(PetitionContainer data, Guid userId, bool saveChanges) { if (data.GroupId.HasValue) { var uig = GroupService.UserInGroup(userId, data.GroupId.Value); if (uig == null) throw new BusinessLogicException("Только члены могут создавать петиции в группе"); if (uig.State == (byte)GroupMemberState.NotApproved) throw new BusinessLogicException("Вы ожидаете одобрения модератора"); } var petition = new Petition { AuthorId = userId, CreationDate = DateTime.Now, Duration = 365, GroupId = data.GroupId.HasValue ? data.GroupId.Value : (Guid?)null, IsDiscussionClosed = false, IsPrivate = data.IsPrivate, Signers = new List<User>(), State = (byte)ContentState.Draft, Tags = TagsHelper.ConvertStringToTagList(data.Tags, data.GroupId), Text = data.Text, Title = data.Title }; var user = DataService.PerThread.BaseUserSet.OfType<User>().SingleOrDefault(u => u.Id == userId); if (user == null) throw new BusinessLogicException("Перезайдите"); petition.Signers.Add(user); DataService.PerThread.ContentSet.AddObject(petition); if (saveChanges) DataService.PerThread.SaveChanges(); return petition; }