示例#1
0
        private async Task <GetIntegrationJobDetailsResponse> UpdateModelWithCniPs(GetIntegrationJobDetailsResponse model)
        {
            var jobsCriteria = await _repository.GetListAsync <AdmIntegrationJobCriteriaColumn>(w =>
                                                                                                w.AdmIntegrationJobID == model.AdmIntegrationJobID);

            var bCniPs = false;

            if (jobsCriteria != null)
            {
                foreach (var criteria in jobsCriteria)
                {
                    var values = (await _repository.GetListAsync <AdmIntegrationJobCriteriaColumnValue>(w =>
                                                                                                        w.AdmIntegrationJobCriteriaColumnID == criteria.AdmIntegrationJobCriteriaColumnID))
                                 .FirstOrDefault();
                    if (values != null)
                    {
                        switch (criteria.ColumnName)
                        {
                        case "CNIPsVendorNumber":
                            model.CNIPsVendorNumber = values.CriteriaValue;
                            bCniPs = true;
                            break;

                        case "CNIPsLicenseNumber":
                            model.CNIPsLicenseNumber = values.CriteriaValue;
                            bCniPs = true;
                            break;

                        case "CNIPsCDSNumber":
                            model.CNIPsCDSNumber = values.CriteriaValue;
                            bCniPs = true;
                            break;

                        case "CNIPsSponsor":
                            model.CNIPsSponsor = values.CriteriaValue;
                            bCniPs             = true;
                            break;

                        case "CNIPsID":
                            model.CNIPsID = values.CriteriaValue;
                            bCniPs        = true;
                            break;
                        }
                    }
                }
            }
            if (bCniPs == false)
            {
                model.CNIPsCDSNumber     = "";
                model.CNIPsID            = "";
                model.CNIPsLicenseNumber = "";
                model.CNIPsSponsor       = "";
                model.CNIPsVendorNumber  = "";
            }
            return(model);
        }
示例#2
0
        public async Task <GetIntegrationJobDetailsResponse> GetIntegrationJobDetails(GetIntegrationJobDetailsRequest request)
        {
            GetIntegrationJobDetailsResponse model;
            AdmIntegrationJob job = null;

            switch (request.JobId)
            {
            case 0:     // find first
                var view = await _repository.GetAsync <AppView>(v => v.AppObjectID == "Integration" && v.ViewName == "Index");

                if (view != null)
                {
                    var pref = (await _repository.GetListAsync <AppViewsAdmUsersPreference>(p => p.AdmUserID == request.CurrentAdmUserId &&
                                                                                            p.AppViewID == view.AppViewID))
                               .FirstOrDefault();
                    if (pref?.LastViewedID != null)
                    {
                        request.JobId = pref.LastViewedID.Value;
                    }
                }

                if (request.JobId != 0)
                {
                    job = (await _repository.GetListAsync <AdmIntegrationJob>(j => j.AdmIntegrationJobID == request.JobId && !j.IsDeleted))
                          .FirstOrDefault();
                }

                if (job == null)
                {
                    job = (await _repository.GetListAsync <AdmIntegrationJob>())
                          .OrderBy(o => o.Name)
                          .FirstOrDefault(o => !o.IsDeleted);
                }

                break;

            case -1:     //new one
                break;

            default:
                job = await _repository.FindAsync <AdmIntegrationJob>(request.JobId);
                await SaveUserLastViewed(request.JobId, request.CurrentAdmUserId);

                break;
            }

            if (job == null)
            {
                model = new GetIntegrationJobDetailsResponse()
                {
                    JobName        = "",
                    JobDescription = "",
                    TaskModel      = new AdmScheduledTaskItem(),
                    IsImport       = request.IsImport.HasValue && request.IsImport.Value,
                    MapType        = (int)GetMapType(request.MapTypeName),
                    GradeSchoolChangeThreshhold = 10,
                    CNIPsVendorNumber           = "",
                    CNIPsCDSNumber     = "",
                    CNIPsLicenseNumber = "",
                    CNIPsSponsor       = "",
                    CNIPsID            = ""
                };
            }
            else
            {
                model                    = _autoMapper.Map <GetIntegrationJobDetailsResponse>(job);
                model.JobName            = job.Name;
                model.JobDescription     = job.Description;
                model.IsImport           = job.AdmIntegrationMap.IsImport;
                model.JobCriteriaColumns = BuildJobCriteriaColumns(job);
                // krp 2do  - does this work? without recalling the db to populate the AdmIntegrationMap
                model.MapType = job.AdmIntegrationMap.MapType; // GetImportType(job.AdmIntegrationMapID)
                model         = await UpdateModelWithCniPs(model);

                model.TaskModel = new AdmScheduledTaskItem();

                var sched = await _repository.GetAsync <AdmScheduledTask>(t => t.AdmIntegrationJobID == job.AdmIntegrationJobID);

                if (sched != null)
                {
                    model.TaskModel = _autoMapper.Map <AdmScheduledTaskItem>(sched);
                    if (sched.StartTime.HasValue)
                    {
                        model.TaskModel.StartTime =
                            new DateTime(((TimeSpan)sched.StartTime).Ticks);
                    }
                }
            }

            var integrationMaps =
                await _repository.GetListAsync <AdmIntegrationMap>(q =>
                                                                   q.MapType == model.MapType && q.IsImport == model.IsImport);

            model.Maps = _autoMapper.Map <Collection <IntegrationMapItem> >(integrationMaps);

            if (model.Maps.Count == 0 && model.AdmIntegrationMapID == 0 &&
                (model.MapType == (int)IntegrationMapType.Gordon_Foods_Order_Export) ||
                (model.MapType == (int)IntegrationMapType.CNIPs))
            {
                var map = await GetNewMap(model.MapType);

                model.Maps.Add(_autoMapper.Map <IntegrationMapItem>(map));
            }
            return(model);
        }