Beispiel #1
0
        public async Task Upload3GBMaterialsAsync(int testID)
        {
            var materials = await _threeGBRepository.Get3GBMaterialsAsync(testID);

            if (!materials.Any())
            {
                throw new BusinessException("No materials added to this Slot. Please add materials to upload.");
            }

            var model = materials.GroupBy(g => g.PlantID)
                        .Select(o =>
            {
                var item = o.FirstOrDefault();
                return(new
                {
                    item.BreEZysAdministrationCode,
                    item.ThreeGBTaskID,
                    item.PlantNumber,
                    item.BreedingProject,
                    item.PlantID,
                    item.Generation,
                    item.TwoGBPlatePlanID,
                    item.TwoGBPlateNumber,
                    item.TwoGBRow,
                    item.TwoGBColumn,
                    item.TwoGBWeek,
                    TwoGBResults = o.Where(x => x.TwoGBPlatePlanID != null)
                                   .GroupBy(g => g.MarkerName)
                                   .Select(x => new
                    {
                        MarkerName = x.Key,
                        x.LastOrDefault()?.Result
                    }).ToList(),
                    Purpose = "",     /* TBD*/
                    Remark = ""       /* TBD*/
                });
            }).ToList();


            var(UserName, Password) = Credentials.GetCredentials();
            using (var svc = new ThreeGBSoapClient
            {
                Url = BASE_SVC_URL,
                Credentials = new NetworkCredential(UserName, Password)
            })
            {
                svc.Model = new
                {
                    PlantLists = model
                };
                var response = await svc.Upload3GBMaterialsAsync();

                //update database with ThreeGBPlantID
                await _threeGBRepository.Update3GBMaterialsAsync(testID, response);
            }
        }
Beispiel #2
0
        public async Task <IEnumerable <ThreeGBSlotData> > GetAvailableProjectsAsync(AvailableThreeGBProjectsRequestArgs requestArgs)
        {
            var(UserName, Password) = Credentials.GetCredentials();
            using (var svc = new ThreeGBSoapClient
            {
                Url = BASE_SVC_URL,
                Credentials = new NetworkCredential(UserName, Password)
            })
            {
                svc.Model = new
                {
                    requestArgs.CropCode,
                    requestArgs.BrStationCode,
                    ThreeGBType = requestArgs.TestTypeCode
                };
                var response = await svc.GetAvailable3GBProjectAsync();

                //apply data filter if required.
                return(response);
            }
        }