Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
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;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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});
        }
Exemplo n.º 5
0
        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;
        }