public object Clone() { var o = new SharingOptions(); o.SharedForAll = this.SharedForAll; foreach (var i in this.PublicItems) o.PublicItems.Add(new PublicItem() { Id = i.Id, IsGroup = i.IsGroup }); return o; }
internal static List<BaseCalendar> GetUserCalendars(Guid userId) { if (!DbRegistry.IsDatabaseRegistered(DbId)) DbRegistry.RegisterDatabase(DbId, WebConfigurationManager.ConnectionStrings[DbId]); var tenantId = CoreContext.TenantManager.GetCurrentTenant().TenantId; var engineFactory = new EngineFactory(DbId, tenantId); var cals = new List<BaseCalendar>(); var engine = engineFactory.GetProjectEngine(); var projects = engine.GetByParticipant(userId); if (projects != null) { var team = engine.GetTeam(projects.Select(r => r.ID).ToList()); foreach (var p in projects) { var sharingOptions = new SharingOptions(); foreach (var participant in team.Where(r => r.ProjectID == p.ID)) sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = participant.ID, IsGroup = false }); var index = p.ID % CalendarColors.BaseColors.Count; cals.Add(new ProjectCalendar(engineFactory, userId, p, CalendarColors.BaseColors[index].BackgroudColor, CalendarColors.BaseColors[index].TextColor, sharingOptions, false)); } } var folowingProjects = engine.GetFollowing(userId); if (folowingProjects != null) { var team = engine.GetTeam(folowingProjects.Select(r => r.ID).ToList()); foreach (var p in folowingProjects) { if (projects != null && projects.Exists(proj => proj.ID == p.ID)) continue; var sharingOptions = new SharingOptions(); sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = userId, IsGroup = false }); foreach (var participant in team.Where(r => r.ProjectID == p.ID)) sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = participant.ID, IsGroup = false }); var index = p.ID % CalendarColors.BaseColors.Count; cals.Add(new ProjectCalendar(engineFactory, userId, p, CalendarColors.BaseColors[index].BackgroudColor, CalendarColors.BaseColors[index].TextColor, sharingOptions, true)); } } return cals; }
public object Clone() { var o = new SharingOptions(); o.SharedForAll = this.SharedForAll; foreach (var i in this.PublicItems) { o.PublicItems.Add(new PublicItem() { Id = i.Id, IsGroup = i.IsGroup }); } return(o); }
public CRMCalendar(DaoFactory daoFactory, Guid userId) { _daoFactory = daoFactory; Context.HtmlBackgroundColor = ""; Context.HtmlTextColor = ""; Context.CanChangeAlertType = false; Context.CanChangeTimeZone = false; Context.GetGroupMethod = () => Web.CRM.Resources.CRMCommonResource.ProductName; Id = "crm_calendar"; EventAlertType = EventAlertType.Never; Name = Web.CRM.Resources.CRMCommonResource.ProductName; Description = ""; SharingOptions = new SharingOptions(); SharingOptions.PublicItems.Add(new SharingOptions.PublicItem {Id = userId, IsGroup = false}); }
public ProjectCalendar(EngineFactory engine, Guid userId, Project project, string backgroundColor, string textColor, SharingOptions sharingOptions, bool following) { _project = project; _engine = engine; _userId = userId; _following = following; Context.HtmlBackgroundColor = backgroundColor; Context.HtmlTextColor = textColor; Context.CanChangeAlertType = false; Context.CanChangeTimeZone = false; Context.GetGroupMethod = () => Web.Projects.Resources.ProjectsCommonResource.ProductName; Id = _project.UniqID; EventAlertType = EventAlertType.Hour; Name = _project.Title; Description = _project.Description; SharingOptions = sharingOptions; }