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); } }
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()); }
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); }