Esempio n. 1
0
        internal bool IsParticipantAt(IEnumerable <Participant> workgroup, ParticipantRoles role, DateTime date)
        {
            var allowed = false;
            var oms     = workgroup.Where(w => w.ParticipantRoleId == (int)role);

            foreach (var item in oms)
            {
                if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                {
                    allowed = true;
                }

                if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                {
                    allowed = true;
                }

                if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                {
                    allowed = true;
                }

                if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                {
                    allowed = true;
                }
            }

            return(allowed);
        }
        /// <summary>
        /// Updates Email participant if the entity attached to the contact.
        /// </summary>
        protected virtual void UpdateParticipantsByContact()
        {
            var isNewContact  = !NewContactId.Equals(OldContactId);
            var noActiveRoles = ParticipantRoles.Where(item => item.Key == "Participant" ||
                                                       item.Key == "Responsible").ToDictionary(x => x.Key, x => x.Value);

            if (!NewContactId.IsEmpty() && isNewContact &&
                !IsEmailParticipantExistsByRoles(NewContactId, ParticipantRoles))
            {
                AddActivityParticipantToInsertedValues(
                    NewContactId,
                    new Dictionary <string, object> {
                    { "RoleId", ParticipantRoles["Participant"] }
                },
                    false
                    );
            }
            else if ((isNewContact || NewContactId.IsEmpty()) &&
                     IsEmailParticipantExistsByRoles(OldContactId, noActiveRoles) &&
                     !NewContactId.Equals(UserConnection.CurrentUser.ContactId))
            {
                RemoveEmailParticipantByContactId(OldContactId);
            }
        }
Esempio n. 3
0
        internal static List <int> GetParticipantUsers(IEnumerable <Participant> workgroup, ParticipantRoles role, ParticipantRoles?role2 = null, ParticipantRoles?role3 = null)
        {
            var      result = new List <int>();
            var      oms    = workgroup.Where(w => w.ParticipantRoleId == (int)role);
            DateTime date   = DateTime.Now;

            foreach (var item in oms)
            {
                if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                {
                    result.Add(item.UserId.Value);
                }

                if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                {
                    result.Add(item.UserId.Value);
                }

                if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                {
                    result.Add(item.UserId.Value);
                }

                if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                {
                    result.Add(item.UserId.Value);
                }
            }

            if (role2.HasValue)
            {
                oms = workgroup.Where(w => w.ParticipantRoleId == (int)role2);
                foreach (var item in oms)
                {
                    if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                    {
                        result.Add(item.UserId.Value);
                    }

                    if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                    {
                        result.Add(item.UserId.Value);
                    }

                    if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                    {
                        result.Add(item.UserId.Value);
                    }

                    if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                    {
                        result.Add(item.UserId.Value);
                    }
                }

                if (role3.HasValue)
                {
                    oms = workgroup.Where(w => w.ParticipantRoleId == (int)role3);
                    foreach (var item in oms)
                    {
                        if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                        {
                            result.Add(item.UserId.Value);
                        }

                        if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                        {
                            result.Add(item.UserId.Value);
                        }

                        if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                        {
                            result.Add(item.UserId.Value);
                        }

                        if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                        {
                            result.Add(item.UserId.Value);
                        }
                    }
                }
            }

            return(result.Distinct().ToList());
        }
Esempio n. 4
0
        internal bool IsUserAllowed(IEnumerable <Participant> workgroup, int userId, ParticipantRoles role, ParticipantRoles?role2 = null, ParticipantRoles?role3 = null)
        {
            var      allowed = false;
            var      oms     = workgroup.Where(w => w.UserId == userId && w.ParticipantRoleId == (int)role);
            DateTime date    = DateTime.Now;

            foreach (var item in oms)
            {
                if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                {
                    allowed = true;
                }

                if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                {
                    allowed = true;
                }

                if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                {
                    allowed = true;
                }

                if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                {
                    allowed = true;
                }
            }

            if (role2.HasValue)
            {
                oms = workgroup.Where(w => w.UserId == userId && w.ParticipantRoleId == (int)role2);
                foreach (var item in oms)
                {
                    if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                    {
                        allowed = true;
                    }

                    if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                    {
                        allowed = true;
                    }

                    if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                    {
                        allowed = true;
                    }

                    if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                    {
                        allowed = true;
                    }
                }

                if (role3.HasValue)
                {
                    oms = workgroup.Where(w => w.UserId == userId && w.ParticipantRoleId == (int)role3);
                    foreach (var item in oms)
                    {
                        if (!item.FromDate.HasValue && !item.ToDate.HasValue)
                        {
                            allowed = true;
                        }

                        if ((item.FromDate.HasValue && !item.ToDate.HasValue) && (item.FromDate < date))
                        {
                            allowed = true;
                        }

                        if ((!item.FromDate.HasValue && item.ToDate.HasValue) && (item.ToDate > date))
                        {
                            allowed = true;
                        }

                        if ((item.FromDate.HasValue && item.ToDate.HasValue) && (item.FromDate < date) && (item.ToDate > date))
                        {
                            allowed = true;
                        }
                    }
                }
            }

            return(allowed);
        }