예제 #1
0
        public Task <IEnumerable <AdjudicatorNote> > GetEnrolleeAdjudicatorNotesAsync(Enrollee enrollee)
        {
            // TODO add proper tests, but need test spike. Add adjudicatorNote to fake db.
            IEnumerable <AdjudicatorNote> notes = new[] { new AdjudicatorNote() };

            return(Task.FromResult(notes));
        }
예제 #2
0
 private void UpdateDeviceProvider(Enrollee enrollee, bool provider = false, bool pumpProvider = false)
 {
     enrollee.DeviceProviderNumber  = provider ? TestUtils.RandomDeviceProviderNumber() : null;
     enrollee.IsInsulinPumpProvider = pumpProvider;
 }
예제 #3
0
 public AccessAgreementNoteFactory(Enrollee owner) : base(owner)
 {
 }
        /// <summary>
        /// Minor update rules should not add any staus reasons
        /// </summary>
        private void AssertNoReasons(Enrollee enrollee)
        {
            var reasons = enrollee.CurrentStatus.EnrolmentStatusReasons ?? Enumerable.Empty <EnrolmentStatusReason>();

            Assert.Empty(reasons);
        }
예제 #5
0
 public abstract Task <bool> ProcessRule(Enrollee enrollee);
예제 #6
0
 public void Post([FromBody] Enrollee enrollee)
 {
     _enrolleeService.AddEnrollee(enrollee);
 }
        public override bool IsSatisfiedBy(Enrollee enrollee)
        {
            const int maxDays = 30;

            return(enrollee.EffectiveDate < DateTime.Today.AddDays(maxDays));
        }
예제 #8
0
        private async Task <bool> HandleSubmissionActionAsync(SubmissionAction action, Enrollee enrollee, object additionalParameters)
        {
            switch (action)
            {
            case SubmissionAction.Approve:
                await ApproveApplicationAsync(enrollee);

                break;

            case SubmissionAction.AcceptToa:
                return(await AcceptToaAsync(enrollee, additionalParameters));

            case SubmissionAction.DeclineToa:
                await DeclineToaAsync(enrollee);

                break;

            case SubmissionAction.EnableEditing:
                await EnableEditingAsync(enrollee);

                break;

            case SubmissionAction.LockProfile:
                await LockProfileAsync(enrollee);

                break;

            case SubmissionAction.DeclineProfile:
                await DeclineProfileAsync(enrollee);

                break;

            case SubmissionAction.RerunRules:
                await RerunRulesAsync(enrollee);

                break;

            default:
                throw new InvalidOperationException($"Action {action} is not recognized in {nameof(HandleSubmissionActionAsync)}");
            }

            return(true);
        }
예제 #9
0
 public bool QualifiesForAutomaticAdjudication(Enrollee enrollee)
 {
     // TODO - make this have more logic to help testing
     return(false);
 }
예제 #10
0
 public CollegeLicenceClientMock(Enrollee expectedEnrollee = null, params OperationMode[] modes)
 {
     _modeEnumerator   = modes.AsEnumerable().GetEnumerator();
     _expectedEnrollee = expectedEnrollee;
 }
예제 #11
0
        public Plan ToModel(PlanEntry planEntry, IEnumerable <EnrolleeFinTypeDO> finTypes, Enrollee owner)
        {
            if (planEntry.Id != PlanId)
            {
                throw new Exception("Incorect PlanEntry instance");
            }
            if (finTypes.Any(f => f.PlanId != PlanId))
            {
                throw new Exception("Incorect FinTypes");
            }

            return(new Plan(planEntry, finTypes.Select(f => (FinancingType)f.FinTypeId), AbitPlanId, Priority, owner));
        }
예제 #12
0
        private async Task <LimitsConditionsClause> GetAccessTermLimitsConditionsClause(Enrollee enrollee)
        {
            var lastNote = await _context.AccessAgreementNotes
                           .Where(n => n.EnrolleeId == enrollee.Id)
                           .OrderByDescending(n => n.CreatedTimeStamp)
                           .FirstOrDefaultAsync();

            var newClause = new LimitsConditionsClause
            {
                EnrolleeId    = enrollee.Id,
                Clause        = null,
                EffectiveDate = new DateTimeOffset()
            };

            if (lastNote != null)
            {
                newClause = new LimitsConditionsClause
                {
                    EnrolleeId    = lastNote.EnrolleeId,
                    Clause        = lastNote.Note,
                    EffectiveDate = new DateTimeOffset()
                };

                _context.LimitsConditionsClauses.Add(newClause);
                await _context.SaveChangesAsync();
            }

            return(newClause);
        }
예제 #13
0
        private async Task <IEnumerable <AccessTermLicenseClassClause> > GetAccessTermLicenseClassClauses(Enrollee enrollee, AccessTerm accessTerms)
        {
            var licenseClassClauses = new List <LicenseClassClause>();

            if (enrollee.Certifications.Count > 0)
            {
                foreach (var org in enrollee.EnrolleeOrganizationTypes)
                {
                    foreach (var cert in enrollee.Certifications)
                    {
                        var mappings = await _context.LicenseClassClauseMappings
                                       .Include(m => m.LicenseClassClause)
                                       .Where(m => m.LicenseCode == cert.LicenseCode)
                                       .Where(m => m.OrganizatonTypeCode == org.OrganizationTypeCode)
                                       .ToListAsync();

                        foreach (var mapping in mappings)
                        {
                            // Check if License Class Clause already in list
                            if (licenseClassClauses.FindAll(lcc => lcc.Id == mapping.LicenseClassClauseId).Count == 0)
                            {
                                licenseClassClauses.Add(mapping.LicenseClassClause);
                            }
                        }
                    }
                }
            }

            return(licenseClassClauses.Select(lcc => new AccessTermLicenseClassClause {
                AccessTerm = accessTerms, LicenseClassClause = lcc
            }));
        }
예제 #14
0
 public void SendReminderEmail(Enrollee enrollee)
 {
     throw new System.NotImplementedException();
 }
예제 #15
0
 public AssignedPrivilegeFactory(Enrollee owner) : this(owner, -1)
 {
 }
예제 #16
0
 public Task <bool> QualifiesForAutomaticAdjudication(Enrollee enrollee)
 {
     // TODO - make this have more logic to help testing
     return(Task.FromResult(false));
 }
예제 #17
0
        public ResponsMessage NewPlanSubscription([FromBody] RequestMessage request)
        {
            ResponsMessage message = new ResponsMessage();

            if (request.Email.Trim().Length < 5 || request.Email.Trim().Length > 50)
            {
                message.Response = "Failed";
                message.Message  = "Invalid email address";
                return(message);
            }
            if (request.FirstName.Trim().Length < 1 || request.FirstName.Trim().Length > 20)
            {
                message.Response = "Failed";
                message.Message  = "Invalid first name";
                return(message);
            }
            if (request.LastName.Trim().Length < 1 || request.LastName.Trim().Length > 20)
            {
                message.Response = "Failed";
                message.Message  = "Invalid last name";
                return(message);
            }
            if (request.Phone.Trim().Length != 11)
            {
                message.Response = "Failed";
                message.Message  = "Invalid phone number";
                return(message);
            }
            if (request.Sandbox_Key.Trim().Length < 1)
            {
                message.Response = "Failed";
                message.Message  = "Invalid sandbox key";
                return(message);
            }
            Enrollees enrollee = new Enrollees();

            if (enrollee.get_enrollees($" where email = '{request.Email}'").Count == 1)
            {
                message.Response = "Failed";
                message.Message  = "Enrollee data already exists";
                return(message);
            }
            //the paramters receveied are not being used because the sandbox expects hard code data
            string Referral_code = "1122345";

            Enrollee[] enrollees = new Enrollee[2];
            enrollees[0] = new Enrollee();
            enrollees[1] = new Enrollee();
            enrollees[0].payment_frequency           = "monthly";
            enrollees[0].first_name                  = "John";
            enrollees[0].last_name                   = "Doe";
            enrollees[0].email_address               = "*****@*****.**";
            enrollees[0].phone_number                = "08132646940";
            enrollees[0].plan_id                     = 22;
            enrollees[0].can_complete_profile        = true;
            enrollees[0].dependants                  = new Dependant[2];
            enrollees[0].dependants[0]               = new Dependant();
            enrollees[0].dependants[1]               = new Dependant();
            enrollees[0].dependants[0].first_name    = "Janet";
            enrollees[0].dependants[0].last_name     = "Dependant";
            enrollees[0].dependants[0].email_address = "*****@*****.**";
            enrollees[0].dependants[0].phone_number  = "08132646940";
            enrollees[0].dependants[0].plan_id       = 22;
            enrollees[0].dependants[1].first_name    = "Fred";
            enrollees[0].dependants[1].last_name     = "Dependant";
            enrollees[0].dependants[1].email_address = "*****@*****.**";
            enrollees[0].dependants[1].phone_number  = "08132646940";
            enrollees[0].dependants[1].plan_id       = 24;
            enrollees[1].payment_frequency           = "q";
            enrollees[1].first_name                  = "Ben";
            enrollees[1].last_name                   = "Stiller";
            enrollees[1].email_address               = "*****@*****.**";
            enrollees[1].phone_number                = "08132646940";
            enrollees[1].plan_id                     = 24;
            enrollees[1].can_complete_profile        = false;
            var enrollement = new { Referral_code = Referral_code, enrollees = enrollees };
            var json        = JsonConvert.SerializeObject(enrollement, Formatting.Indented);
            var request22   = (HttpWebRequest)WebRequest.Create("https://sandboxapi.fsi.ng/relianceHMO/retail/signup");
            var postData    = json.Replace("null", "[]");
            var data1       = Encoding.ASCII.GetBytes(postData);

            request22.Method = "POST";
            request22.Headers.Add("Sandbox-Key", request.Sandbox_Key);
            request22.ContentType   = "application/json";
            request22.ContentLength = data1.Length;
            var responseString = "";
            var result         = "";

            using (var streamProcess = request22.GetRequestStream())
            {
                streamProcess.Write(data1, 0, data1.Length);
            }
            try
            {
                var newHttpResponse = (HttpWebResponse)request22.GetResponse();
                responseString = new StreamReader(newHttpResponse.GetResponseStream()).ReadToEnd();
                dynamic passString = JsonConvert.DeserializeObject <dynamic>(responseString);
                result = (string)passString.access_token;
            }
            catch (Exception d)
            {
            }
            if (responseString.IndexOf("\"message\":\"OK\"") > -1)
            {
                Enrollees_Table enrolleesData = new Enrollees_Table();
                enrolleesData.Email      = request.Email;
                enrolleesData.First_name = request.FirstName;
                enrolleesData.Last_name  = request.LastName;
                enrolleesData.Phone      = request.Phone;
                enrollee.add_enrollees(enrolleesData);
            }
            else
            {
                message.Response = "Failed";
                message.Message  = "Enrollment failed";
                return(message);
            }
            message.Response = "Successful";
            message.Message  = "Enrollee data captured successfully";
            return(message);
        }
예제 #18
0
 public Task <bool> QualifiesForAutomaticAdjudicationAsync(Enrollee enrollee)
 {
     throw new System.NotImplementedException();
 }
예제 #19
0
 public void Put(int id, [FromBody] Enrollee enrollee)
 {
     _enrolleeService.UpdateEnrollee(enrollee);
 }
예제 #20
0
 public Task <bool> QualifiesAsMinorUpdateAsync(Enrollee enrollee, EnrolleeProfileViewModel profileUpdate)
 {
     throw new System.NotImplementedException();
 }
예제 #21
0
        private bool SendBithdayMessageTask(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            IList <Enrollee> enrolleewithbirthday = _enrolleeService.GetEnrolleeCelebratingBirthday();

            List <string> phonenumbersent = new List <string>();
            DateTime      today           = CurrentRequestData.Now;

            foreach (Enrollee enrollee in enrolleewithbirthday.Where(x => x.Mobilenumber.Length > 10))
            {
                if (enrollee.LastyearBirthdaymsgsent < today.Year)
                {
                    string fullname = enrollee.Surname + " " + enrollee.Othernames;

                    if (!string.IsNullOrEmpty(fullname) && !phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        string messageFormated = _smsservice.GetConfig().BdaySmsTemplate.Replace("%name%", fullname);


                        Sms sms = new Sms();
                        sms.FromId       = "NovoHealth";
                        sms.DeliveryDate = CurrentRequestData.Now;
                        sms.Message      =
                            string.Format(messageFormated);
                        sms.DateDelivered = CurrentRequestData.Now;
                        sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                        sms.Msisdn        = enrollee.Mobilenumber;
                        sms.Status        = SmsStatus.Pending;
                        sms.Type          = SmsType.Birthday;

                        bool resp = _smsservice.SendSms(sms);

                        phonenumbersent.Add(enrollee.Mobilenumber);

                        //update enrollee last birthdaysent

                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                    //not sent for years

                    if (phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        //duplicate enrollee
                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                }
            }
            Log log = new Log();

            log.Message = string.Format("Birthday Message was sent to  {0} Enrollee's {1}", phonenumbersent.Count(), CurrentRequestData.Now.ToLongTimeString());
            log.Type    = LogEntryType.Audit;
            log.Detail  = "Birthday Message Sent";

            _logger.Insert(log);



            //Do PostVerification EVS

            IList <EnrolleeVerificationCode> verificationlis = _enrolleeService.GetPreviousDayAuthenticatedCodes();

            int smscount = 0;

            foreach (EnrolleeVerificationCode item in verificationlis)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.EnrolleeId);
                Provider provider = _providerservice.GetProvider(item.ProviderId);

                if (enrollee != null && provider != null & enrollee.Mobilenumber.Length > 9)
                {
                    string msg = string.Format("Dear {0} ,Novo Health Africa Cares. How were you served at {1} yesterday ,Call or text.08180287867.", (enrollee.Surname + " " + enrollee.Othernames).ToUpper(), provider.Name.ToUpper());


                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = msg;

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);


                    smscount++;
                }
                item.PostSMSSent = true;
                _helperSvc.Updateverification(item);
            }
            Log logit = new Log();

            logit.Message = string.Format("PostEVS Message was sent to  {0} Enrollee's {1}", smscount, CurrentRequestData.Now.ToLongTimeString());
            logit.Type    = LogEntryType.Audit;
            logit.Detail  = "Post EVS Message Sent";



            //send delivery
            IList <AuthorizationCode> thedeliveries = _claimservice.getBirthAuthorization();

            foreach (AuthorizationCode item in thedeliveries)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.enrolleeID);

                if (enrollee != null && enrollee.Mobilenumber.Length > 9)
                {
                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = "Dear esteemed enrollee, Novo Health Africa wishes to use this medium to congratulate you on the arrival of your bundle of Joy. It is with great joy we share this period and experience of Joy with you and your family. Please accept our heartfelt wishes. With love from NHA.";

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);
                    item.deliverysmssent = true;

                    _claimservice.updateAuthorization(item);
                }
            }


            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;



            return(_helperSvc.updateTask(task));
        }
예제 #22
0
        protected override void OnExecute()
        {
            IList <Enrollee> enrolleewithbirthday = _enrolleeService.GetEnrolleeCelebratingBirthday();

            List <string> phonenumbersent = new List <string>();
            DateTime      today           = CurrentRequestData.Now;

            foreach (Enrollee enrollee in enrolleewithbirthday.Where(x => x.Mobilenumber.Length > 10))
            {
                if (enrollee.LastyearBirthdaymsgsent < today.Year)
                {
                    string fullname = enrollee.Surname + " " + enrollee.Othernames;

                    if (!string.IsNullOrEmpty(fullname) && !phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        string messageFormated = _smsservice.GetConfig().BdaySmsTemplate.Replace("%name%", fullname);


                        Sms sms = new Sms();
                        sms.FromId       = "NovoHealth";
                        sms.DeliveryDate = CurrentRequestData.Now;
                        sms.Message      =
                            string.Format(messageFormated);
                        sms.DateDelivered = CurrentRequestData.Now;
                        sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                        sms.Msisdn        = enrollee.Mobilenumber;
                        sms.Status        = SmsStatus.Pending;
                        sms.Type          = SmsType.Birthday;

                        bool resp = _smsservice.SendSms(sms);

                        phonenumbersent.Add(enrollee.Mobilenumber);

                        //update enrollee last birthdaysent

                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                    //not sent for years

                    if (phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        //duplicate enrollee
                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                }
            }
            Log log = new Log();

            log.Message = string.Format("Birthday Message was sent to  {0} Enrollee's {1}", phonenumbersent.Count(), CurrentRequestData.Now.ToLongTimeString());
            log.Type    = LogEntryType.Audit;
            log.Detail  = "Birthday Message Sent";

            _logger.Insert(log);



            //Do PostVerification EVS

            IList <EnrolleeVerificationCode> verificationlis = _enrolleeService.GetPreviousDayAuthenticatedCodes();

            int smscount = 0;

            foreach (EnrolleeVerificationCode item in verificationlis)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.EnrolleeId);
                Provider provider = _providerservice.GetProvider(item.ProviderId);

                if (enrollee != null && provider != null & enrollee.Mobilenumber.Length > 9)
                {
                    string msg = string.Format("Dear {0} ,We noticed from our E-VS platform that you recently assessed care at {1}.We hope you enjoyed their services.If you have any complaints,kindly call or text any of these numbers.08179709298,07053173582,07053173582,08179711606.", (enrollee.Surname + " " + enrollee.Othernames).ToUpper(), provider.Name.ToUpper());


                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = msg;

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);


                    smscount++;
                }
                item.PostSMSSent = true;
                _helperSvc.Updateverification(item);
            }
            Log logit = new Log();

            logit.Message = string.Format("PostEVS Message was sent to  {0} Enrollee's {1}", smscount, CurrentRequestData.Now.ToLongTimeString());
            logit.Type    = LogEntryType.Audit;
            logit.Detail  = "Post EVS Message Sent";
        }
예제 #23
0
 public EnrolmentStatusFactory(Enrollee owner) : this(owner, Enumerable.Empty <Status>())
 {
 }
예제 #24
0
        public static List <Attendance> LoadEnrolleeAttendanceAll(List <Enrollee> lEnrollee, List <AttLog> lAttLog)
        {
            var lAttendance = new List <Attendance>();

            foreach (var enr in lEnrollee)
            {
                int      iLoc     = 1;
                Enrollee enrollee = enr;
                foreach (var log in lAttLog.FindAll(a => a.SEnrollNumber == enrollee.SEnrollNumber))
                {
                    string dtTime = log.IHour + ":" + log.IMinute + ":" + log.ISecond;
                    string dtDate = log.IMonth + "/" + log.IDay + "/" + log.IYear;

                    Attendance att = lAttendance.FirstOrDefault(at => at.DTAttDate == DateTime.Parse(dtDate));

                    if (att != null)
                    {
                        att.DTAttDate     = DateTime.Parse(dtDate);
                        att.IEnrollNumber = enrollee.IEnrollNumber;
                        att.SEnrollNumber = enrollee.SEnrollNumber;
                        //iLoc = VerifyShiftSetting(eEnrollee.IEnrollNumber.ToString(), DateTime.Parse(dtDate), DateTime.Parse(dtTime));

                        switch (iLoc)
                        {
                        case 1:
                            att.DTAttTimeInAM = DateTime.Parse(dtTime);
                            break;

                        case 2:
                            att.DTAttTimeOutAM = DateTime.Parse(dtTime);
                            break;

                        case 3:
                            att.DTAttTimeInPM = DateTime.Parse(dtTime);
                            break;

                        case 4:
                            att.DTAttTimeOutPM = DateTime.Parse(dtTime);
                            break;

                        case 5:
                            att.DTAttTimeInOT = DateTime.Parse(dtTime);
                            break;

                        case 6:
                            att.DTAttTimeOutOT = DateTime.Parse(dtTime);
                            break;

                        case 7:

                            break;

                        default:
                            break;
                        }
                    }
                    else
                    {
                        att = new Attendance();
                        //iCountAtt = lAttLog.Count<AttLog>(attl => attl.GetDate() == dtDate);
                        att.DTAttDate     = DateTime.Parse(dtDate);
                        att.IEnrollNumber = enrollee.IEnrollNumber;
                        att.SEnrollNumber = enrollee.SEnrollNumber;
                        //iLoc = VerifyShiftSetting(eEnrollee.IEnrollNumber.ToString(), DateTime.Parse(dtDate), DateTime.Parse(dtTime));
                        switch (iLoc)
                        {
                        case 1:
                            att.DTAttTimeInAM = DateTime.Parse(dtTime);
                            break;

                        case 2:
                            att.DTAttTimeOutAM = DateTime.Parse(dtTime);
                            break;

                        case 3:
                            att.DTAttTimeInPM = DateTime.Parse(dtTime);
                            break;

                        case 4:
                            att.DTAttTimeOutPM = DateTime.Parse(dtTime);
                            break;

                        case 5:
                            att.DTAttTimeInOT = DateTime.Parse(dtTime);
                            break;

                        case 6:
                            att.DTAttTimeOutOT = DateTime.Parse(dtTime);
                            break;

                        case 7:

                            break;

                        default:
                            break;
                        }
                        lAttendance.Add(att);
                    }
                    iLoc += 1;
                }
            }
            return(lAttendance);
        }
예제 #25
0
 public EnrolleeEnrolmentCompletedEvent(Enrollee enrollee)
 {
     CompletedEnrolmentEnrollee = enrollee;
 }
예제 #26
0
        public async Task AssignPrivilegesToEnrolleeAsync(int enrolleeId, Enrollee enrollee)
        {
            var _enrolleeDb = _context.Enrollees
                              .Include(e => e.Certifications)
                              .Where(e => e.Id == enrollee.Id)
                              .AsNoTracking()
                              .SingleOrDefault();

            ICollection <AssignedPrivilege> assignedPrivileges = await this.GetAssignedPrivilegesForEnrolleeAsync(enrolleeId);

            if (assignedPrivileges != null)
            {
                foreach (var privilege in assignedPrivileges)
                {
                    privilege.Enrollee  = null;
                    privilege.Privilege = null;
                    _context.Remove(privilege);
                }
            }

            await _context.SaveChangesAsync();

            _enrolleeDb = _context.Enrollees
                          .Include(e => e.Certifications)
                          .Where(e => e.Id == enrollee.Id)
                          .SingleOrDefault();

            ICollection <Certification> certifications = _enrolleeDb.Certifications;

            if (certifications != null)
            {
                ICollection <DefaultPrivilege> defaultPrivileges = new List <DefaultPrivilege>();
                foreach (var cert in certifications)
                {
                    ICollection <DefaultPrivilege> result = await this.GetDefaultPrivilegesForLicenseCodeAsync(cert.LicenseCode);

                    foreach (var p in result)
                    {
                        if (!defaultPrivileges.Any(df => df.PrivilegeId == p.PrivilegeId))
                        {
                            defaultPrivileges.Add(p);
                        }
                    }
                }

                if (defaultPrivileges != null)
                {
                    foreach (var defaultPrivilege in defaultPrivileges)
                    {
                        AssignedPrivilege assignedPrivilege = new AssignedPrivilege
                        {
                            EnrolleeId  = enrolleeId,
                            PrivilegeId = defaultPrivilege.PrivilegeId
                        };

                        _context.Entry(assignedPrivilege).State = EntityState.Added;
                    }
                }

                _enrolleeDb.Privileges = await this.GetPrivilegesForEnrolleeAsync(enrollee);

                _context.Entry(_enrolleeDb).State = EntityState.Modified;

                await _context.SaveChangesAsync();
            }
        }
예제 #27
0
 public EnrolleeNoteFactory(Enrollee owner) : base(owner)
 {
     Ignore(x => x.Adjudicator);
     Ignore(x => x.AdjudicatorId);
     Ignore(x => x.EnrolmentStatusReference);
 }
예제 #28
0
 public async Task <IEnumerable <AdjudicatorNote> > GetEnrolleeAdjudicatorNotesAsync(Enrollee enrollee)
 {
     return(await _context.AdjudicatorNotes
            .Where(an => an.EnrolleeId == enrollee.Id)
            .Include(an => an.Adjudicator)
            .OrderByDescending(an => an.NoteDate)
            .ToListAsync());
 }
 public Task CreateEnrolleeProfileVersionAsync(Enrollee enrollee)
 {
     return(Task.CompletedTask);
 }
예제 #30
0
 /// <summary>
 /// Обновление абитуриента
 /// </summary>
 /// <param name="enrollee">Редактируемый абитуриент</param>
 /// <returns>Отредактированная запись</returns>
 public Enrollee UpdateEnrollee(Enrollee enrollee)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к обновлению данных абитуриента.");
     try
     {
         var enrolleeToUpdate = context.Enrollee.FirstOrDefault(e => e.EnrolleeId == enrollee.EnrolleeId);
         logger.Debug($"Текущая запись {enrolleeToUpdate.ToString()}");
         enrolleeToUpdate.SpecialityId              = enrollee.SpecialityId;
         enrolleeToUpdate.CitizenshipId             = enrollee.CitizenshipId;
         enrolleeToUpdate.CountryId                 = enrollee.CountryId;
         enrolleeToUpdate.AreaId                    = enrollee.AreaId;
         enrolleeToUpdate.DistrictId                = enrollee.DistrictId;
         enrolleeToUpdate.SettlementTypeId          = enrollee.SettlementTypeId;
         enrolleeToUpdate.StreetTypeId              = enrollee.StreetTypeId;
         enrolleeToUpdate.DocumentId                = enrollee.DocumentId;
         enrolleeToUpdate.SchoolTypeId              = enrollee.SchoolTypeId;
         enrolleeToUpdate.ForeignLanguageId         = enrollee.ForeignLanguageId;
         enrolleeToUpdate.ReasonForAddmissionId     = enrollee.ReasonForAddmissionId;
         enrolleeToUpdate.StateTypeId               = enrollee.StateTypeId;
         enrolleeToUpdate.EmployeeId                = enrollee.EmployeeId;
         enrolleeToUpdate.FinanceTypeId             = enrollee.FinanceTypeId;
         enrolleeToUpdate.DecreeId                  = enrollee.DecreeId;
         enrolleeToUpdate.SecondarySpecialityId     = enrollee.SecondarySpecialityId;
         enrolleeToUpdate.TargetWorkPlaceId         = enrollee.TargetWorkPlaceId;
         enrolleeToUpdate.RuSurname                 = enrollee.RuSurname;
         enrolleeToUpdate.RuName                    = enrollee.RuName;
         enrolleeToUpdate.RuPatronymic              = enrollee.RuPatronymic;
         enrolleeToUpdate.BlrSurname                = enrollee.BlrSurname;
         enrolleeToUpdate.BlrName                   = enrollee.BlrName;
         enrolleeToUpdate.BlrPatronymic             = enrollee.BlrPatronymic;
         enrolleeToUpdate.Gender                    = enrollee.Gender;
         enrolleeToUpdate.DateOfBirthday            = enrollee.DateOfBirthday;
         enrolleeToUpdate.FatherFullname            = enrollee.FatherFullname;
         enrolleeToUpdate.FatherAddress             = enrollee.FatherAddress;
         enrolleeToUpdate.MotherFullname            = enrollee.MotherFullname;
         enrolleeToUpdate.MotherAddress             = enrollee.MotherAddress;
         enrolleeToUpdate.SettlementName            = enrollee.SettlementName;
         enrolleeToUpdate.SettlementIndex           = enrollee.SettlementIndex;
         enrolleeToUpdate.StreetName                = enrollee.StreetName;
         enrolleeToUpdate.NumberHouse               = enrollee.NumberHouse;
         enrolleeToUpdate.NumberFlat                = enrollee.NumberFlat;
         enrolleeToUpdate.HomePhone                 = enrollee.HomePhone;
         enrolleeToUpdate.MobilePhone               = enrollee.MobilePhone;
         enrolleeToUpdate.DocumentSeria             = enrollee.DocumentSeria;
         enrolleeToUpdate.DocumentNumber            = enrollee.DocumentNumber;
         enrolleeToUpdate.DocumentDate              = enrollee.DocumentDate;
         enrolleeToUpdate.DocumentWhoGave           = enrollee.DocumentWhoGave;
         enrolleeToUpdate.DocumentPersonalNumber    = enrollee.DocumentPersonalNumber;
         enrolleeToUpdate.SchoolName                = enrollee.SchoolName;
         enrolleeToUpdate.SchoolYear                = enrollee.SchoolYear;
         enrolleeToUpdate.SchoolAddress             = enrollee.SchoolAddress;
         enrolleeToUpdate.IsBRSM                    = enrollee.IsBRSM;
         enrolleeToUpdate.NumberOfDeal              = enrollee.NumberOfDeal;
         enrolleeToUpdate.DateDeal                  = enrollee.DateDeal;
         enrolleeToUpdate.StateDateChange           = enrollee.StateDateChange;
         enrolleeToUpdate.PersonInCharge            = enrollee.PersonInCharge;
         enrolleeToUpdate.WorkPlace                 = enrollee.WorkPlace;
         enrolleeToUpdate.WorkPost                  = enrollee.WorkPost;
         enrolleeToUpdate.Seniority                 = enrollee.Seniority;
         enrolleeToUpdate.CurrentNumberCurs         = enrollee.CurrentNumberCurs;
         enrolleeToUpdate.CurrentUniversity         = enrollee.CurrentUniversity;
         enrolleeToUpdate.CurrentSpeciality         = enrollee.CurrentSpeciality;
         enrolleeToUpdate.AttestatEstimationString  = enrollee.AttestatEstimationString;
         enrolleeToUpdate.DiplomPtuEstimationString = enrollee.DiplomPtuEstimationString;
         enrolleeToUpdate.DiplomSusEstimationString = enrollee.DiplomSusEstimationString;
         enrolleeToUpdate.BeforeEnrollSpecialityId  = enrollee.BeforeEnrollSpecialityId;
         enrolleeToUpdate.BeforeEnrollNumberOfDeal  = enrollee.BeforeEnrollNumberOfDeal;
         context.SaveChanges();
         logger.Debug($"Новая запись {enrolleeToUpdate.ToString()}");
         return(enrolleeToUpdate);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка редактирования данных абитуриента.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка редактирования данных абитуриента.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }