private Boolean UpdateGlossaryItemNumber(Int64 GlossaryId, Boolean ChangeView) { GlossaryGroup Group = Manager.Get <GlossaryGroup>(GlossaryId); Group.TotalItems = (from Domain.Dto.ListItemDTO term in Manager.GetAll <Domain.Dto.ListItemDTO>(term => (term.Group.Id == GlossaryId)) orderby term.Term select term.Id).Count(); if ((Group.TotalItems > MaxGlossaryItemPaging) && ChangeView) { Group.IsPaged = true; } if ((Group.TotalItems > MaxGlossaryItemView) && ChangeView) { Group.DefaultView = DefaultView.MultiColumn; } try { Manager.SaveOrUpdate <GlossaryGroup>(Group); return(true); } catch (Exception ex) { return(false); } }
public Boolean DeleteGroup(Int64 GroupID) { GlossaryGroup Group = Manager.Get <GlossaryGroup>(GroupID); if (Group == null) { return(false); } int CommunityGroups = (from Domain.GlossaryGroup grp in Manager.GetIQ <GlossaryGroup>() where grp.OwnerType == 0 && grp.OwnerId == this.UC.CurrentCommunityID select grp.Id).Count(); if (CommunityGroups <= 1) { return(false); } Boolean isOk = false; Boolean isDefault = Group.IsDefault; IList <GlossaryItem> Items = Manager.GetAll <Domain.GlossaryItem>(term => (term.Group.Id == Group.Id)).ToList(); if (Items != null && Items.Count > 0) { try { Manager.DeletePhysicalList <GlossaryItem>(Items); } catch { return(false); } } try { Manager.DeletePhysical <GlossaryGroup>(Group); isOk = true; } catch (Exception ex) { //return false; } if (isOk && isDefault) { GlossaryGroup DefGroup = Manager.GetAll <Domain.GlossaryGroup>(x => (x.OwnerType == 0 && x.OwnerId == this.UC.CurrentCommunityID)).FirstOrDefault(); if (DefGroup != null) { Person user = Manager.Get <Person>(UC.CurrentUserID); DefGroup.UpdateMetaInfo(user, this.UC.IpAddress, this.UC.ProxyIpAddress); DefGroup.IsDefault = true; Manager.SaveOrUpdate <GlossaryGroup>(DefGroup); } } return(isOk); }
public Boolean SaveOrUpdateItem(Domain.Dto.AddEditItemDto ItemDTO) { Int64 OldGroupId = ItemDTO.GroupId; Boolean isOk = false; GlossaryItem Item; GlossaryGroup Group = Manager.Get <GlossaryGroup>(ItemDTO.GroupId); Person user = Manager.Get <Person>(UC.CurrentUserID); if (ItemDTO.Id > 0) { Item = Manager.Get <GlossaryItem>(ItemDTO.Id); OldGroupId = Item.Group.Id; Item.UpdateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); } else { Item = new GlossaryItem(); Item.CreateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); } Item.Group = Group; Item.Term = ItemDTO.Term; Item.Definition = ItemDTO.Definition; Item.SetFirstLetter(); try { Manager.SaveOrUpdate <GlossaryItem>(Item); isOk = true; } catch (Exception ex) { } if (isOk) { UpdateGlossaryItemNumber(ItemDTO.GroupId, true); if (OldGroupId != ItemDTO.GroupId) { UpdateGlossaryItemNumber(OldGroupId, false); } } return(isOk); }
public Boolean BindGlossaries(Int32 CommunityID, Boolean HasPermission) { Boolean HasElement = false; if (HasPermission && !UserContext.isAnonymous) { IList <Domain.GlossaryGroup> GlossaryGroup = Service.GetGlossaryList(CommunityID); if (GlossaryGroup == null) { GlossaryGroup = new List <Domain.GlossaryGroup>(); } if (GlossaryGroup.Count() > 0) { HasElement = true; } this.View.BindGlossary(GlossaryGroup); } return(HasElement); }
public Int32 CopyGlossary(IList <Int64> SourceGlossariesIds, Int32 DestCommunityId) { Person user = Manager.Get <Person>(UC.CurrentUserID); //UC.IpAddress, UC.ProxyIpAddress) Int32 GlossaryCount = 0; Int32 TermsCount = 0; IList <GlossaryGroup> SourceGlossaries = (from GlossaryGroup g in Manager.GetAll <Domain.GlossaryGroup> (x => ( SourceGlossariesIds.Contains(x.Id) )) select g).ToList <GlossaryGroup>(); IList <GlossaryGroup> DestGlossaries = new List <GlossaryGroup>(); foreach (GlossaryGroup GlGroup in SourceGlossaries) { GlossaryGroup DestGlGroup = new GlossaryGroup(); DestGlGroup.CreatedBy = GlGroup.CreatedBy; DestGlGroup.CreatedOn = GlGroup.CreatedOn; DestGlGroup.CreatorIpAddress = GlGroup.CreatorIpAddress; DestGlGroup.CreatorProxyIpAddress = GlGroup.CreatorProxyIpAddress; DestGlGroup.DefaultView = GlGroup.DefaultView; DestGlGroup.Deleted = GlGroup.Deleted; DestGlGroup.IsDefault = false; DestGlGroup.IsPaged = GlGroup.IsPaged; DestGlGroup.ItemPerPage = GlGroup.ItemPerPage; //DestGlGroup.ModifiedBy = UserId; //DestGlGroup.ModifiedIpAddress = DestGlGroup.ModifiedOn = DateTime.Now; //DestGlGroup.ModifiedProxyIpAddress = DestGlGroup.Name = GlGroup.Name; DestGlGroup.OwnerId = DestCommunityId; DestGlGroup.OwnerType = GlGroup.OwnerType; // ! ATTENZIONE NEL CASO DI COPINO SOLO SINGOLI TERMINI ! // DestGlGroup.TotalItems = GlGroup.TotalItems; DestGlGroup.UpdateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); Manager.SaveOrUpdate <GlossaryGroup>(DestGlGroup); GlossaryCount += 1; if (DestGlGroup.TotalItems > 0) { IList <GlossaryItem> DestTerms = new List <GlossaryItem>(); IList <GlossaryItem> Items = Manager.GetAll <Domain.GlossaryItem>(term => (term.Group.Id == GlGroup.Id)).ToList <GlossaryItem>(); foreach (GlossaryItem Term in Items) { GlossaryItem DestTerm = new GlossaryItem(); DestTerm.CreatedBy = Term.CreatedBy; DestTerm.CreatedOn = Term.CreatedOn; DestTerm.CreatorIpAddress = Term.CreatorIpAddress; DestTerm.CreatorProxyIpAddress = Term.CreatorProxyIpAddress; DestTerm.Definition = Term.Definition; DestTerm.Deleted = Term.Deleted; DestTerm.FirstLetter = Term.FirstLetter; DestTerm.Group = DestGlGroup; DestTerm.IsPublic = Term.IsPublic; DestTerm.Link = Term.Link; //DestTerm.ModifiedBy = //DestTerm.ModifiedIpAddress = DestTerm.ModifiedOn = DateTime.Now; //DestTerm.ModifiedProxyIpAddress = DestTerm.Term = Term.Term; DestTerm.UpdateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); DestTerms.Add(DestTerm); TermsCount += 1; } Manager.SaveOrUpdateList <GlossaryItem>(DestTerms); } //DestGlossaries.Add(DestGlGroup); } return(GlossaryCount); }
public Int64 SaveOrUpdateGroup(Domain.Dto.AddItemGroupDto GroupDTO) { GlossaryGroup Group; Person user = Manager.Get <Person>(UC.CurrentUserID); if (GroupDTO.Id > 0) { Group = Manager.Get <GlossaryGroup>(GroupDTO.Id); Group.UpdateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); } else { Group = new GlossaryGroup(); Group.CreateMetaInfo(user, UC.IpAddress, UC.ProxyIpAddress); Group.OwnerType = 0; //Community Group.OwnerId = this.UC.CurrentCommunityID; Group.ItemPerPage = 20; Group.DefaultView = DefaultView.MultiColumn; } Group.Name = GroupDTO.Name; Group.DefaultView = GroupDTO.DefaultView; Group.IsPaged = GroupDTO.IsPaged; Group.ItemPerPage = GroupDTO.ItemPerPage; Group.IsDefault = GroupDTO.IsDefault; var AllGroups = Manager.GetAll <Domain.GlossaryGroup> (x => ( x.OwnerType == 0 && x.OwnerId == this.UC.CurrentCommunityID && x.IsDefault == true && x.Id != Group.Id )); if (Group.IsDefault && AllGroups.Count() > 0) { foreach (GlossaryGroup grp in AllGroups) { grp.IsDefault = false; } Manager.SaveOrUpdateList <GlossaryGroup>(AllGroups); } else if ((Group.IsDefault) && AllGroups.Count() == 0) { Group.IsDefault = true; } try { Manager.SaveOrUpdate <GlossaryGroup>(Group); return(Group.Id); } catch (Exception ex) { return(-1); } }