Ejemplo n.º 1
0
        public CrmCalendar(WebItemSecurity webItemSecurity,
                           DaoFactory daoFactory,
                           AuthContext authContext,
                           TimeZoneConverter timeZoneConverter,
                           TenantManager tenantManager,
                           TenantUtil tenantUtil
                           ) : base(authContext, timeZoneConverter)
        {
            _tenantUtil      = tenantUtil;
            _tenantManager   = tenantManager;
            _webItemSecurity = webItemSecurity;
            _daoFactory      = daoFactory;

            Context.HtmlBackgroundColor = "";
            Context.HtmlTextColor       = "";
            Context.CanChangeAlertType  = false;
            Context.CanChangeTimeZone   = false;
            Context.GetGroupMethod      = () => CRMCommonResource.ProductName;
            Id             = "crm_calendar";
            EventAlertType = EventAlertType.Never;
            Name           = CRMCommonResource.ProductName;
            Description    = "";
            SharingOptions = new SharingOptions();
            //            SharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = userId, IsGroup = false });
        }
 public CRMCalendar(Guid userId)
 {
     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
     });
 }
Ejemplo n.º 3
0
        public ProjectCalendar(Project project, string backgroundColor, string textColor, SharingOptions sharingOptions, bool following)
        {
            this.project   = project;
            this.following = following;

            Context.HtmlBackgroundColor = backgroundColor;
            Context.HtmlTextColor       = textColor;
            Context.CanChangeAlertType  = false;
            Context.CanChangeTimeZone   = false;
            Context.GetGroupMethod      = () => Web.Projects.Resources.ProjectsCommonResource.ProductName;
            Id             = this.project.UniqID;
            EventAlertType = EventAlertType.Hour;
            Name           = this.project.Title;
            Description    = this.project.Description;
            SharingOptions = sharingOptions;
        }
        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;
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        internal static List <BaseCalendar> GetUserCalendars(Guid userId)
        {
            using (var scope = DIHelper.Resolve())
            {
                var engineFactory = scope.Resolve <EngineFactory>();

                var cals     = new List <BaseCalendar>();
                var engine   = engineFactory.ProjectEngine;
                var projects = engine.GetByParticipant(userId);

                if (projects != null)
                {
                    var team = engine.GetTeam(projects.Select(r => r.ID).ToList());

                    foreach (var project in projects)
                    {
                        var p = project;

                        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 = project.ID % CalendarColors.BaseColors.Count;
                        cals.Add(new ProjectCalendar(
                                     project,
                                     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 project in folowingProjects)
                    {
                        var p = project;

                        if (projects != null && projects.Any(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(
                                     p,
                                     CalendarColors.BaseColors[index].BackgroudColor,
                                     CalendarColors.BaseColors[index].TextColor,
                                     sharingOptions, true));
                    }
                }

                return(cals);
            }
        }