コード例 #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)
 {
 }
コード例 #4
0
        /// <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);
 }
コード例 #7
0
        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
ファイル: TaskController.cs プロジェクト: infotechub/cbtch
        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
ファイル: EnrolleeService.cs プロジェクト: esune/moh-prime
 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());
 }
コード例 #29
0
 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);
     }
 }