public CallCenterRep Save(CallCenterRep callCenterRep, long organizationRoleUserId) { //TODO: Temp patch, as from create user callcenter profile is not created. using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { //TODO: remove - Temp Patch to check idf the profile is created or not var orgRoleuser = new LinqMetaData(adapter).OrganizationRoleUser .WithPath(prefetchPath => prefetchPath.Prefetch(org => org.CallCenterRepProfile)) .Where( oru => (oru.RoleId == (long)Roles.CallCenterRep) && callCenterRep.CallCenterRepId == oru.OrganizationRoleUserId) .FirstOrDefault(); if (orgRoleuser != null && orgRoleuser.CallCenterRepProfile == null) { callCenterRep.CallCenterRepId = 0; } // Might add a mapper class going forward, when there are a number of Profile Attributes. (Sandeep) var callCenterRepEntity = new CallCenterRepProfileEntity(organizationRoleUserId) { CanRefund = callCenterRep.CanRefund, CanChangeNotes = callCenterRep.CanChangeNotes, IsNew = callCenterRep.CallCenterRepId > 0 ? false : true }; if (!adapter.SaveEntity(callCenterRepEntity)) { throw new PersistenceFailureException(); } return(callCenterRep); } }
public CallCenterRep SaveCallCenterRep(CallCenterRep callCenterRep, long organizationId) { if (callCenterRep == null) { throw new ArgumentNullException("CallCenterRep"); } if (callCenterRep.Address != null) { callCenterRep.Address = _addressService.SaveAfterSanitizing(callCenterRep.Address); } callCenterRep.DefaultRole = Roles.CallCenterRep; callCenterRep = _userRepository.SaveUser(callCenterRep); var orgRoleUser = _orgRoleUserRepository.SaveOrganizationRoleUser(new OrganizationRoleUser(callCenterRep.Id, (long)Roles.CallCenterRep, organizationId)); _callcenterRepository.Save(callCenterRep, orgRoleUser.Id); return(callCenterRep); }
public List <CallCenterRep> GetCallCenterReps(List <long> callCenterRepIds) { List <OrderedPair <long, long> > orgRolesUsersforCCRep; using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(myAdapter); orgRolesUsersforCCRep = linqMetaData.OrganizationRoleUser.Where(oru => (oru.RoleId == (long)Roles.CallCenterRep || oru.Role.ParentId == (long)Roles.CallCenterRep) && callCenterRepIds.Contains(oru.OrganizationRoleUserId)). Select(oru => new OrderedPair <long, long>(oru.UserId, oru.OrganizationRoleUserId)).ToList(); } List <CallCenterRep> callCenterReps = _userRepository.GetUsers(orgRolesUsersforCCRep.Select(oru => oru.FirstValue).ToList()); foreach (var callCenterRep in callCenterReps) { CallCenterRep rep = callCenterRep; callCenterRep.CallCenterRepId = orgRolesUsersforCCRep.Single(oru => oru.FirstValue == rep.Id).SecondValue; } return(callCenterReps); }
public CallCenterRep GetCallCenterRep(long callCenterRepId) { using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(myAdapter); var orgRoleUserEntity = linqMetaData.OrganizationRoleUser.WithPath(prefetchPath => prefetchPath.Prefetch(org => org.CallCenterRepProfile)) .Where(oru => (oru.RoleId == (long)Roles.CallCenterRep || oru.Role.ParentId == (long)Roles.CallCenterRep) && callCenterRepId == oru.OrganizationRoleUserId).FirstOrDefault(); if (orgRoleUserEntity == null) { throw new ObjectNotFoundInPersistenceException <CallCenterRep>(); } CallCenterRep callCenterRep = _userRepository.GetUser(orgRoleUserEntity.UserId); callCenterRep.CallCenterRepId = orgRoleUserEntity.OrganizationRoleUserId; callCenterRep.CanRefund = orgRoleUserEntity.CallCenterRepProfile != null ? orgRoleUserEntity.CallCenterRepProfile.CanRefund : false; callCenterRep.CanChangeNotes = orgRoleUserEntity.CallCenterRepProfile != null ? orgRoleUserEntity.CallCenterRepProfile.CanChangeNotes : false; return(callCenterRep); } }
public CallCenterRepMetricDetailViewData CreateCallCenterRepMetricDetailViewDatum(EventCustomerRegistrationViewData eventCustomer, Order order, CallCenterRep callCenterRep) { // It is a cancelled record. if (order == null || !order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted)) { order = null; } var amount = order != null ? order.DiscountedTotal : 0m; var isPrePaid = order != null && order.TotalAmountPaid >= order.DiscountedTotal; var paymentDate = isPrePaid && order.DataRecorderMetaData != null ? (DateTime?)order.DataRecorderMetaData.DateCreated : null; var packageName = eventCustomer.PackageName; packageName = !string.IsNullOrEmpty(packageName) ? !string.IsNullOrEmpty(eventCustomer.AdditinalTest) ? packageName + ", " + eventCustomer.AdditinalTest : packageName : eventCustomer.AdditinalTest; return(new CallCenterRepMetricDetailViewData { EventSignUp = eventCustomer.EventSignupDate, EventDate = eventCustomer.EventDate, Customer = eventCustomer.FirstName + " " + eventCustomer.LastName, AttendedState = eventCustomer.EventDate > DateTime.Now ? "Scheduled" : "Attended", CustomerId = eventCustomer.CustomerId, Package = packageName, EventId = eventCustomer.EventId, Amount = amount, CallCenterRep = callCenterRep.NameAsString, PaymentDate = paymentDate, IsPrePaid = isPrePaid, CustomerAddress = null }); }
public List <CallCenterRepMetricDetailViewData> CreateCallCenterRepMetricDetailViewData(List <EventCustomerRegistrationViewData> eventCustomers, List <Order> orders, CallCenterRep callCenterRep) { var callCenterRepMetricDetailViewData = new List <CallCenterRepMetricDetailViewData>(); foreach (var eventCustomer in eventCustomers) { var aggregate = eventCustomer; Order currentOrder = null; foreach (var order in orders) { if (order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted)) { var activeOrderDetail = order.OrderDetails.SingleOrDefault( od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted && od.EventCustomerOrderDetail != null); if (activeOrderDetail != null && activeOrderDetail.EventCustomerOrderDetail != null && activeOrderDetail.EventCustomerOrderDetail.EventCustomerId == aggregate.EventCustomerId) { currentOrder = order; } } } var callCenterRepMetricDetailViewDatum = CreateCallCenterRepMetricDetailViewDatum(aggregate, currentOrder, callCenterRep); callCenterRepMetricDetailViewData.Add(callCenterRepMetricDetailViewDatum); } return(callCenterRepMetricDetailViewData); }
private CallCenterRep BuildUserModel(User callCenterRep) { var userRepository = IoC.Resolve <IUserRepository <User> >(); var countryRepository = IoC.Resolve <ICountryRepository>(); var addressRepository = IoC.Resolve <IAddressRepository>(); var user = new CallCenterRep(); if (callCenterRep != null) { user.Id = callCenterRep.Id; } user.Name = new Name(txtfname.Text, txtMiddleName.Text, txtlname.Text); var userAddress = new Address(); userAddress.StreetAddressLine1 = txtaddress1.Text; userAddress.StreetAddressLine2 = txtAddress2.Text; userAddress.Country = countryRepository.GetAll().FirstOrDefault().Name; userAddress.State = ddlState.SelectedItem.Text; userAddress.City = txtCity.Text; userAddress.ZipCode = new ZipCode { Zip = txtzip1.Text }; try { if (!addressRepository.ValidateAddress(userAddress)) { return(null); } } catch (InvalidAddressException exception) { ClientScript.RegisterStartupScript(typeof(string), "bijscode", "alert('" + exception.Message + "');", true); return(null); } if (callCenterRep != null) { userAddress.Id = callCenterRep.Address.Id; } user.Address = userAddress; user.HomePhoneNumber = new PhoneNumber { Number = txtphonehome.Text }.ToNumber(); user.OfficePhoneNumber = new PhoneNumber { Number = txtphoneother.Text }.ToNumber(); user.MobilePhoneNumber = new PhoneNumber { Number = txtphonecell.Text }.ToNumber(); if (!string.IsNullOrWhiteSpace(txtEmail1.Text)) { user.Email = new Email(txtEmail1.Text); } if (!string.IsNullOrWhiteSpace(txtEmail2.Text)) { user.AlternateEmail = new Email(txtEmail2.Text); } if ((callCenterRep == null) || (callCenterRep.Email.ToString() != txtEmail1.Text)) { if (!userRepository.UniqueEmail(user.Email.ToString())) { errordiv.Visible = true; errordiv.InnerText = "Contact email already exists. Please try another email."; return(null); } } if ((callCenterRep == null) || (callCenterRep.AlternateEmail != null) && (callCenterRep.AlternateEmail.ToString() != txtEmail2.Text)) { if (user.AlternateEmail != null && !userRepository.UniqueEmail(user.AlternateEmail.ToString())) { errordiv.Visible = true; errordiv.InnerText = "Contact email already exists. Please try another email."; return(null); } } if (!string.IsNullOrWhiteSpace(txtDob.Text)) { user.DateOfBirth = Convert.ToDateTime(txtDob.Text); } user.CanRefund = chkCanDoRefund.Checked; user.CanChangeNotes = chkChangeNotes.Checked; user.UserLogin = callCenterRep == null ? new UserLogin { UserName = txtUserName.Text, Password = txtPassword.Text, IsSecurityQuestionVerified = false } : callCenterRep.UserLogin; return(user); }