public OrgUnit GetCustomerCompanyDetail(string orgId) { int id = 0; if (orgId != null) { id = Convert.ToInt32(orgId); } OrgUnit orgUnit; List <OrganizationPerson> personlist; OrganizationPerson person; using (BraathenEiendomEntities entity = new BraathenEiendomEntities()) { var orgResult = entity.OrganizationUnits.Where(w => w.OrganizationUnitID == id).Select(s => s).FirstOrDefault(); personlist = new List <OrganizationPerson>(); orgUnit = new OrgUnit(); orgUnit.id = orgResult.OrganizationUnitID; orgUnit.name = orgResult.OrganizationUnitName; orgUnit.Code = string.IsNullOrEmpty(orgResult.Code)?true :false; orgUnit.OrganizationNumber = orgResult.OrgNumber; if (orgResult.PictureID != null) { orgUnit.PicturePath = entity.PictureProperties.Where(w => w.PicturePropertyID == orgResult.PictureID).SingleOrDefault().Filepath.ToString(); } var persons = entity.People.Join(entity.OrganizationUnit_Person, p => p.PersonID, o => o.PersonID, (P, O) => new { p = P, o = O }) .Where(w => w.o.OrganizationUnitID == orgResult.OrganizationUnitID).Select(s => s.p).OrderBy(o => o.DisplayName).ToList(); if (persons != null) { foreach (var p in persons.Where(p => p.Custom2 == null)) { person = new OrganizationPerson(); person.id = p.PersonID; person.name = p.DisplayName; person.telephone = p.MobilePhone; person.UserEmail = p.Email; person.Department = p.Custom1; person.UserGroup = string.Join(",", entity.UserGroups.Join(entity.UserGroup_User, gp => gp.UserGroupId, go => go.UserGroupId, (GP, GO) => new { gp = GP, go = GO }) .Where(w => w.go.UserId == p.PersonID).Select(gs => gs.gp.UserGroupName)); personlist.Add(person); } } orgUnit.personList = personlist; } return(orgUnit); }
public IEnumerable <OrganizationPerson> UserListbyBuilding(int buildingId, int orgId) { List <OrganizationPerson> userList = new List <OrganizationPerson>(); OrganizationPerson user; using (BraathenEiendomEntities entity = new BraathenEiendomEntities()) { if (buildingId != 0) { var orgList = entity.OrganizationUnits.Where(w => w.ParentID == buildingId).Select(s => new { s.OrganizationUnitID, s.OrganizationUnitName }).ToList(); if (orgList != null) { foreach (var item in orgList) { var persons = entity.People.Join(entity.OrganizationUnit_Person, p => p.PersonID, o => o.PersonID, (P, O) => new { p = P, o = O }) .Where(w => w.o.OrganizationUnitID == item.OrganizationUnitID).Select(s => s.p).OrderBy(o => o.DisplayName).ToList(); if (persons != null) { foreach (var p in persons.Where(p => p.Custom2 == null || p.Custom2 == "")) { user = new OrganizationPerson(); user.id = p.PersonID; user.name = p.DisplayName; user.telephone = p.MobilePhone; user.UserEmail = p.Email; user.Department = p.Custom1; user.UserGroup = string.Join(",", entity.UserGroups.Join(entity.UserGroup_User, gp => gp.UserGroupId, go => go.UserGroupId, (GP, GO) => new { gp = GP, go = GO }) .Where(w => w.go.UserId == p.PersonID).Select(gs => gs.gp.UserGroupName)); user.OrganizationName = item.OrganizationUnitName; userList.Add(user); } } } } } else { if (orgId != 0) { var persons = entity.People.Join(entity.OrganizationUnit_Person, p => p.PersonID, o => o.PersonID, (P, O) => new { p = P, o = O }) .Where(w => w.o.OrganizationUnitID == orgId).Select(s => s.p).OrderBy(o => o.DisplayName).ToList(); if (persons != null) { foreach (var p in persons.Where(p => p.Custom2 == null || p.Custom2 == "")) { user = new OrganizationPerson(); user.id = p.PersonID; user.name = p.DisplayName; user.telephone = p.MobilePhone; user.UserEmail = p.Email; user.Department = p.Custom1; user.UserGroup = string.Join(",", entity.UserGroups.Join(entity.UserGroup_User, gp => gp.UserGroupId, go => go.UserGroupId, (GP, GO) => new { gp = GP, go = GO }) .Where(w => w.go.UserId == p.PersonID).Select(gs => gs.gp.UserGroupName)); userList.Add(user); } } } } } userList = userList.OrderBy(o => o.name).ToList(); return(userList); }
public static OrganizationPerson CreateOrgPerson(this IRepositoryAsync <OrganizationPerson> repo, OrganizationPersonInput input, Guid organizationId) { var entity = new OrganizationPerson { Created = DateTimeOffset.UtcNow, Updated = DateTimeOffset.UtcNow, PersonId = input.PersonId, OrganizationId = organizationId, IsOrganizationOwner = input.IsCustomer, IsDefault = true, IsDeleted = false, Status = PersonStatus.Active, ObjectState = ObjectState.Added, AffiliateCode = Guid.NewGuid() .ToString() .Substring(0, 5) .ToUpper(), Customer = input.IsCustomer ? new OrganizationCustomer() { CustomerId = input.PersonId, OrganizationId = organizationId, IsDefault = input.IsCustomer, ObjectState = ObjectState.Added } : null, Contractor = input.IsContractor ? new OrganizationContractor() { ContractorId = input.PersonId, ContractorStream = input.ContractorStream.GetValueOrDefault(), OrganizationId = organizationId, ObjectState = ObjectState.Added } : null, AccountManager = input.IsAccountManager ? new OrganizationAccountManager() { AccountManagerId = input.PersonId, AccountManagerStream = input.AccountManagerStream.GetValueOrDefault(), OrganizationId = organizationId, ObjectState = ObjectState.Added } : null, ProjectManager = input.IsProjectManager ? new OrganizationProjectManager() { ProjectManagerId = input.PersonId, OrganizationId = organizationId, ProjectManagerStream = input.ProjectManagerStream.GetValueOrDefault(), ObjectState = ObjectState.Added } : null, Recruiter = input.IsRecruiter ? new OrganizationRecruiter() { RecruiterId = input.PersonId, OrganizationId = organizationId, RecruiterStream = input.RecruiterStream.GetValueOrDefault(), RecruiterBonus = input.RecruiterBonus.GetValueOrDefault(), ObjectState = ObjectState.Added } : null, Marketer = input.IsMarketer ? new OrganizationMarketer() { MarketerId = input.PersonId, OrganizationId = organizationId, Created = DateTimeOffset.UtcNow, MarketerStream = input.MarketerStream.GetValueOrDefault(), MarketerBonus = input.MarketerBonus.GetValueOrDefault(), ObjectState = ObjectState.Added } : null }.InjectFrom(input) as OrganizationPerson; repo.Insert(entity); return(entity); }
private OrganizationResult UpgradeToMarketingOrganization(MarketingOrganizationUpgradeInput input, Organization organization, OrganizationPerson person, bool saveChanges = true) { _logger.LogInformation(GetLogMessage("{0}, {1}"), organization.Name, organization.OrganizationType.GetDescription()); if (person.Marketer == null) { _logger.LogDebug(GetLogMessage("No Marketer Found")); person.Marketer = new OrganizationMarketer() { MarketerId = person.PersonId, OrganizationId = person.OrganizationId, MarketerStream = input.MarketerStream, MarketerBonus = input.MarketerBonus, ObjectState = ObjectState.Added, }; person.ObjectState = ObjectState.Modified; var recordsUpdated = _organizationPersonRepo.InsertOrUpdateGraph(person, true); _logger.LogDebug(GetLogMessage("OrganizationPeople Records Updated: {0}"), recordsUpdated); } else { _logger.LogDebug(GetLogMessage("Person is already a marketer")); } organization.MarketingOrganization = new MarketingOrganization() { MarketerStream = input.MarketerStream, MarketingAgencyBonus = input.MarketingAgencyBonus, MarketerBonus = input.MarketerBonus, MarketingAgencyStream = input.MarketingAgencyStream, DefaultMarketerId = person.PersonId, ObjectState = ObjectState.Added, ServiceFeePerLead = 1 }.InjectFrom(input) as MarketingOrganization; organization.ObjectState = ObjectState.Modified; organization.OrganizationType = organization.OrganizationType.Add(OrganizationType.Marketing); _logger.LogDebug(GetLogMessage("new org type {0}"), organization.OrganizationType); var organizationResult = Repository.InsertOrUpdateGraph(organization, saveChanges); _logger.LogDebug(GetLogMessage("Organization Records Updated: {0}"), organizationResult); var subscriptionResult = _subscriptionService.PushSubscription(organization.Id, true).Result; _logger.LogDebug(GetLogMessage("Subscription Records Updated: {0}"), subscriptionResult); return(new OrganizationResult() { Succeeded = organizationResult > 0, OrganizationId = organization.Id }); }
private OrganizationResult UpgradeToProviderOrganization(ProviderOrganizationUpgradeInput input, Organization organization, OrganizationPerson person, bool saveChanges = true) { _logger.LogInformation(GetLogMessage("{Organization}, Saving Changes: {saveChanges}"), organization.Name, saveChanges); var retVal = new OrganizationResult() { OrganizationId = organization.Id }; person.AccountManager = new OrganizationAccountManager() { AccountManagerId = person.PersonId, OrganizationId = person.OrganizationId, AccountManagerStream = input.AccountManagerStream, ObjectState = ObjectState.Added }; person.ProjectManager = new OrganizationProjectManager() { OrganizationId = person.OrganizationId, ProjectManagerId = person.PersonId, ProjectManagerStream = input.ProjectManagerStream, ObjectState = ObjectState.Added }; person.Contractor = new OrganizationContractor() { ContractorId = person.PersonId, OrganizationId = person.OrganizationId, ContractorStream = input.ContractorStream, ObjectState = ObjectState.Added }; person.ObjectState = ObjectState.Modified; var records = _organizationPersonRepo.InsertOrUpdateGraph(person, true); _logger.LogDebug(GetLogMessage("{0} Records updated"), records); if (records == 0) { retVal.Succeeded = false; retVal.ErrorMessage = "Unable to add user to provider roles"; return(retVal); } organization.ProviderOrganization = new ProviderOrganization() { ContractorStream = input.ContractorStream, ProjectManagerStream = input.ProjectManagerStream, AccountManagerStream = input.AccountManagerStream, AgencyStream = input.AgencyStream, Discoverable = input.Discoverable, ObjectState = ObjectState.Added, SystemStream = SystemStream, DefaultAccountManagerId = person.PersonId, DefaultContractorId = person.PersonId, DefaultProjectManagerId = person.PersonId }.InjectFrom(input) as ProviderOrganization; organization.ObjectState = ObjectState.Modified; organization.OrganizationType = organization.OrganizationType.Add(OrganizationType.Provider); _logger.LogDebug(GetLogMessage("new org type {0}"), organization.OrganizationType); var orgRecords = Repository.InsertOrUpdateGraph(organization, saveChanges); _logger.LogDebug(GetLogMessage("{0} Organization Records updated"), orgRecords); if (orgRecords == 0) { retVal.ErrorMessage = "Unable to update organization"; return(retVal); } var stripeResult = _subscriptionService.PushSubscription(organization.Id, saveChanges).Result; _logger.LogDebug(GetLogMessage("{StripeChanges} stripe records updated"), stripeResult); if (stripeResult > 0) { retVal.Succeeded = true; } return(retVal); }
private OrganizationResult UpgradeToRecruitingOrganization(RecruitingOrganizationUpgradeInput input, Organization organization, OrganizationPerson person, bool saveChanges = true) { _logger.LogInformation(GetLogMessage("{0}"), organization.Name); if (person.Recruiter == null) { _logger.LogDebug(GetLogMessage("Person is not a recruiter")); person.Recruiter = new OrganizationRecruiter() { RecruiterId = person.PersonId, OrganizationId = person.OrganizationId, RecruiterStream = input.RecruiterStream, ObjectState = ObjectState.Added, }; person.ObjectState = ObjectState.Modified; var recordsUpdated = _organizationPersonRepo.InsertOrUpdateGraph(person, true); _logger.LogDebug(GetLogMessage("OrganizationPeople Records Updated: {0}"), recordsUpdated); } else { _logger.LogDebug(GetLogMessage("Person is already a recruiter")); } organization.RecruitingOrganization = new RecruitingOrganization() { RecruiterStream = input.RecruiterStream, RecruitingAgencyStream = input.RecruitingAgencyStream, DefaultRecruiterId = person.PersonId, Updated = DateTimeOffset.UtcNow, Created = DateTimeOffset.UtcNow, ObjectState = ObjectState.Added, }.InjectFrom(input) as RecruitingOrganization; organization.ObjectState = ObjectState.Modified; organization.OrganizationType = organization.OrganizationType.Add(OrganizationType.Recruiting); var result = Repository.InsertOrUpdateGraph(organization, saveChanges); _logger.LogDebug(GetLogMessage("Pushing subscription to stripe...")); var result2 = _subscriptionService.PushSubscription(organization.Id, saveChanges).Result; _logger.LogDebug(GetLogMessage("{OrganizationRecordsChanged}, {StripeRecordsChanged}"), result, result2); return(new OrganizationResult() { Succeeded = result > 0, OrganizationId = organization.Id }); }