示例#1
0
        public void UpdateFieldCrop(string fldName, FieldCrop updtCrop)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData  yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field     fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            FieldCrop crp = fld.crops.FirstOrDefault(m => m.id == updtCrop.id);

            crp.cropId             = updtCrop.cropId;
            crp.yield              = updtCrop.yield;
            crp.reqK2o             = updtCrop.reqK2o;
            crp.reqN               = updtCrop.reqN;
            crp.stdN               = updtCrop.stdN;
            crp.reqP2o5            = updtCrop.reqP2o5;
            crp.remK2o             = updtCrop.remK2o;
            crp.remN               = updtCrop.remN;
            crp.remP2o5            = updtCrop.remP2o5;
            crp.crudeProtien       = updtCrop.crudeProtien;
            crp.prevCropId         = updtCrop.prevCropId;
            crp.cropOther          = updtCrop.cropOther;
            crp.coverCropHarvested = updtCrop.coverCropHarvested;
            // cannot be modified in the UI
            crp.prevYearManureAppl_volCatCd = _sd.GetCropPrevYearManureApplVolCatCd(Convert.ToInt32(crp.cropId));
            crp.yieldHarvestUnit            = updtCrop.yieldHarvestUnit;
            crp.yieldByHarvestUnit          = updtCrop.yieldByHarvestUnit;

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#2
0
        public List <FarmManure> GetFarmManures()
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            YearData yd = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);

            if (yd.farmManures == null)
            {
                yd.farmManures = new List <FarmManure>();
            }
            foreach (var fm in yd.farmManures)
            {
                if (!fm.customized)
                {
                    Manure man = _sd.GetManure(fm.manureId.ToString());
                    fm.ammonia         = man.ammonia;
                    fm.dmid            = man.dmid;
                    fm.manure_class    = man.manure_class;
                    fm.moisture        = man.moisture;
                    fm.name            = man.name;
                    fm.nitrate         = (decimal?)null;
                    fm.nitrogen        = man.nitrogen;
                    fm.nminerizationid = man.nminerizationid;
                    fm.phosphorous     = man.phosphorous;
                    fm.potassium       = man.potassium;
                    fm.solid_liquid    = man.solid_liquid;
                }
            }

            return(yd.farmManures);
        }
示例#3
0
        public void UpdateFieldSoilTest(Field updtFld)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field    fld = yd.fields.FirstOrDefault(f => f.fieldName == updtFld.fieldName);

            if (fld.soilTest == null)
            {
                fld.soilTest = new SoilTest();
            }

            if (updtFld.soilTest == null)
            {
                fld.soilTest = null;
            }
            else
            {
                fld.soilTest.sampleDate        = updtFld.soilTest.sampleDate;
                fld.soilTest.ValP              = updtFld.soilTest.ValP;
                fld.soilTest.valK              = updtFld.soilTest.valK;
                fld.soilTest.valNO3H           = updtFld.soilTest.valNO3H;
                fld.soilTest.valPH             = updtFld.soilTest.valPH;
                fld.soilTest.ConvertedKelownaK = updtFld.soilTest.ConvertedKelownaK;
                fld.soilTest.ConvertedKelownaP = updtFld.soilTest.ConvertedKelownaP;
            }

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#4
0
 public static bool CanBuy(
     PlayerScript player,
     FarmItemDefinition definition,
     FarmData __instance,
     bool __result
     )
 {
     if (!isEnable)
     {
         return(true);
     }
     #region
     //logger.Log(definition.);
     //for (int i = 0; i < building.buildings.Count; i++)
     //{
     //    if (building.buildings[i].isEnable)
     //    {
     //        if(definition.FullId== building.buildings[i].ID)
     //        {
     //            definition.ItemCountLimit = building.buildings[i].limit;
     //        }
     //    }
     //}
     #endregion
     {
         //完全版
         definition.ItemCountLimit = 99999;
     }
     return(true);
 }
示例#5
0
        public void UpdateFarmDetails(FarmDetails fd)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            userData.farmDetails.farmName      = fd.farmName;
            userData.farmDetails.farmRegion    = fd.farmRegion;
            userData.farmDetails.soilTests     = fd.soilTests;
            userData.farmDetails.testingMethod = fd.testingMethod;
            userData.farmDetails.manure        = fd.manure;
            userData.farmDetails.year          = fd.year;

            //change the year associated with the array
            YearData yd = userData.years.FirstOrDefault();

            if (yd == null)
            {
                YearData ny = new YearData();
                ny.year = fd.year;
                userData.years.Add(ny);
            }
            else
            {
                yd.year = fd.year;
            }
            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#6
0
        public void UpdateFieldCrop(string fldName, FieldCrop updtCrop)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData  yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field     fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            FieldCrop crp = fld.crops.FirstOrDefault(m => m.id == updtCrop.id);

            crp.cropId             = updtCrop.cropId;
            crp.yield              = updtCrop.yield;
            crp.reqK2o             = updtCrop.reqK2o;
            crp.reqN               = updtCrop.reqN;
            crp.stdN               = updtCrop.stdN;
            crp.reqP2o5            = updtCrop.reqP2o5;
            crp.remK2o             = updtCrop.remK2o;
            crp.remN               = updtCrop.remN;
            crp.remP2o5            = updtCrop.remP2o5;
            crp.crudeProtien       = updtCrop.crudeProtien;
            crp.prevCropId         = updtCrop.prevCropId;
            crp.cropOther          = updtCrop.cropOther;
            crp.coverCropHarvested = updtCrop.coverCropHarvested;

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#7
0
        public void UpdateFieldNutrientsFertilizer(string fldName, NutrientFertilizer updtFert)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData           yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field              fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            NutrientFertilizer nf  = fld.nutrients.nutrientFertilizers.FirstOrDefault(m => m.id == updtFert.id);

            nf.applDate            = updtFert.applDate;
            nf.applMethodId        = updtFert.applMethodId;
            nf.applRate            = updtFert.applRate;
            nf.applUnitId          = updtFert.applUnitId;
            nf.fertilizerId        = updtFert.fertilizerId;
            nf.fertilizerTypeId    = updtFert.fertilizerTypeId;
            nf.fertK2o             = updtFert.fertK2o;
            nf.fertN               = updtFert.fertN;
            nf.fertP2o5            = updtFert.fertP2o5;
            nf.customN             = updtFert.customN;
            nf.customP2o5          = updtFert.customP2o5;
            nf.customK2o           = updtFert.customK2o;
            nf.liquidDensity       = updtFert.liquidDensity;
            nf.liquidDensityUnitId = updtFert.liquidDensityUnitId;

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#8
0
        public void AddFieldNutrientsOther(string fldName, NutrientOther newOther)
        {
            int nextId = 1;

            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field    fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);

            if (fld.nutrients == null)
            {
                fld.nutrients = new Nutrients();
                fld.nutrients.nutrientOthers = new List <NutrientOther>();
            }
            else
            {
                if (fld.nutrients.nutrientOthers == null)
                {
                    fld.nutrients.nutrientOthers = new List <NutrientOther>();
                }
            }

            foreach (var f in fld.nutrients.nutrientOthers)
            {
                nextId = nextId <= f.id ? f.id + 1 : nextId;
            }
            newOther.id = nextId;

            fld.nutrients.nutrientOthers.Add(newOther);
            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
            /// <summary>Generates specific spawn times for a list of objects and adds them to the Utility.TimedSpawns list.</summary>
            /// <param name="objects">A list of saved objects to be spawned during the current in-game day.</param>
            /// <param name="data">The FarmData from which these saved objects were generated.</param>
            /// <param name="area">The SpawnArea for which these saved objects were generated.</param>
            public static void PopulateTimedSpawnList(List <SavedObject> objects, FarmData data, SpawnArea area)
            {
                List <TimedSpawn> timedSpawns = new List <TimedSpawn>();           //the list of fully processed objects and associated data

                Dictionary <int, int> possibleTimes = new Dictionary <int, int>(); //a dictionary of valid spawn times (keys) and the number of objects assigned to them (values)

                if (area.SpawnTiming == null)                                      //if the SpawnTiming setting is null
                {
                    possibleTimes.Add(600, 0);                                     //spawn everything at 6:00AM
                }
                else
                {
                    for (StardewTime x = area.SpawnTiming.StartTime; x <= area.SpawnTiming.EndTime; x++) //for each 10-minute time from StartTime to EndTime
                    {
                        possibleTimes.Add(x, 0);                                                         //add this time to the list
                    }
                }

                foreach (SavedObject obj in objects)                                                                                                             //for each provided object
                {
                    int index = RNG.Next(0, possibleTimes.Count);                                                                                                //randomly select an index for a valid time
                    obj.SpawnTime = possibleTimes.Keys.ElementAt(index);                                                                                         //assign the time to this object
                    timedSpawns.Add(new TimedSpawn(obj, data, area));                                                                                            //add this object to the processed list
                    possibleTimes[obj.SpawnTime]++;                                                                                                              //increment the number of objects assigned to this time

                    if (area.SpawnTiming.MaximumSimultaneousSpawns.HasValue && area.SpawnTiming.MaximumSimultaneousSpawns.Value <= possibleTimes[obj.SpawnTime]) //if "max spawns" exists and has been reached for this time
                    {
                        possibleTimes.Remove(obj.SpawnTime);                                                                                                     //remove this time from the list
                    }
                    else if (area.SpawnTiming.MinimumTimeBetweenSpawns.HasValue && area.SpawnTiming.MinimumTimeBetweenSpawns.Value > 10)                         //if "time between" exists and is significant
                    {
                        int         between = (area.SpawnTiming.MinimumTimeBetweenSpawns.Value - 10) / 10;                                                       //get the number of other possible times to remove before/after the selected time
                        StardewTime minTime = obj.SpawnTime;                                                                                                     //the earliest time to be removed from the list
                        StardewTime maxTime = obj.SpawnTime;                                                                                                     //the latest time to be removed from the list

                        for (int x = 0; x < between; x++)                                                                                                        //for each adjacent time to be removed
                        {
                            minTime--;                                                                                                                           //select the previous time
                            maxTime++;                                                                                                                           //select the next time
                        }

                        for (int x = possibleTimes.Count - 1; x >= 0; x--) //for each possible time (looping backward for removal purposes)
                        {
                            int time = possibleTimes.Keys.ElementAt(x);
                            if (time != obj.SpawnTime && time >= minTime && time <= maxTime) //if this time isn't the selected time, and is within the range of minTime and maxTime
                            {
                                possibleTimes.Remove(time);                                  //remove it from the list
                            }
                        }
                    }

                    if (possibleTimes.Count <= 0) //if no valid spawn times are left
                    {
                        break;                    //skip the rest of the objects
                    }
                }

                TimedSpawns.Add(timedSpawns); //add the processed list of timed spawns to Utility.TimedSpawns
            }
示例#10
0
            private static bool CheckMerge(FarmTileId tile1, FarmTileId tile2, FarmData __instance)
            {
                if (!settings.isEnable)
                {
                    return(true);
                }
                FarmTile tile3 = __instance.GetTile(tile1);

                if (tile3 == null || tile3.IsEmpty)
                {
                    return(false);
                }
                FarmTile tile4 = __instance.GetTile(tile2);

                if (tile4 == null || tile4.IsEmpty)
                {
                    return(false);
                }
                if (tile3.Contents.Category == tile4.Contents.Category)
                {
                    FarmTileContentsType category = tile3.Contents.Category;
                    if (category != FarmTileContentsType.Animal)
                    {
                        if (category == FarmTileContentsType.Pond)
                        {
                            PondContents pondContents  = tile3.Contents as PondContents;
                            PondContents pondContents2 = tile4.Contents as PondContents;
                            if (pondContents.Pond == pondContents2.Pond)
                            {
                                return(false);
                            }
                            if (pondContents.Pond.Tiles.Count + pondContents2.Pond.Tiles.Count > settings.maxTileCount)
                            {
                                return(false);
                            }
                            pondContents2.Pond.Merge(pondContents.Pond);
                            tile3.StateChanged(true);
                            tile4.StateChanged(true);
                        }
                    }
                    else
                    {
                        AnimalFieldContents animalFieldContents  = tile3.Contents as AnimalFieldContents;
                        AnimalFieldContents animalFieldContents2 = tile4.Contents as AnimalFieldContents;
                        if (animalFieldContents.Field == animalFieldContents2.Field)
                        {
                            return(false);
                        }
                        if (animalFieldContents.Field.TileCount + animalFieldContents2.Field.TileCount > settings.maxTileCount)
                        {
                            return(false);
                        }
                        animalFieldContents2.Field.Merge(animalFieldContents.Field);
                        tile3.StateChanged(true);
                        tile4.StateChanged(true);
                    }
                }
                return(false);
            }
        public async Task MakeFarmFromFarmDataAsync_Instagram()
        {
            var farmData = new FarmData {
                SocialMedia = @"www.learnlandleisure.com, @hillhousefarmdorking, www.facebook.com/hillhousefarmdorking"
            };
            var farm = await FarmDataToFarmService.MakeFarmFromFarmDataAsync(farmData);

            Assert.Equal("@hillhousefarmdorking", farm.Instagram);
        }
        public async Task MakeFarmFromFarmDataAsync_Website_HttpOnly()
        {
            var farmData = new FarmData {
                SocialMedia = @"www.lowerclopton.co.uk, Facebook: Lower Clopton Farm Shop and Cafe, @lowercloptonfarmshoppton"
            };
            var farm = await FarmDataToFarmService.MakeFarmFromFarmDataAsync(farmData);

            Assert.Equal("http://www.lowerclopton.co.uk", farm.Website);
        }
        public async Task MakeFarmFromFarmDataAsync_Website_Https()
        {
            var farmData = new FarmData {
                SocialMedia = @"www.scottiescoffee.co.uk"
            };
            var farm = await FarmDataToFarmService.MakeFarmFromFarmDataAsync(farmData);

            Assert.Equal("https://www.scottiescoffee.co.uk", farm.Website);
        }
示例#14
0
        public NutrientFertilizer GetFieldNutrientsFertilizer(string fldName, int fertId)
        {
            FarmData           userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");
            YearData           yd       = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field              fld      = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            NutrientFertilizer nf       = fld.nutrients.nutrientFertilizers.FirstOrDefault(m => m.id == fertId);

            return(nf);
        }
示例#15
0
        public NutrientManure GetFieldNutrientsManure(string fldName, int manId)
        {
            FarmData       userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");
            YearData       yd       = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field          fld      = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            NutrientManure nm       = fld.nutrients.nutrientManures.FirstOrDefault(m => m.id == manId);

            return(nm);
        }
示例#16
0
        public FieldCrop GetFieldCrop(string fldName, int cropId)
        {
            FarmData  userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");
            YearData  yd       = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field     fld      = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            FieldCrop crp      = fld.crops.FirstOrDefault(m => m.id == cropId);

            return(crp);
        }
示例#17
0
    public FarmData CreateFarmData(Coords coords)
    {
        FarmData farmData = new FarmData(coords, "Farm " + (gameController.data.farmData.Count + 1));

        gameController.data.farmData.Add(farmData);
        VoxelData voxelData = gameController.data.voxelData[coords.x, coords.y];

        voxelData.occupied = true;
        voxelData.hasFarm  = true;
        return(farmData);
    }
示例#18
0
 void InitAnimalData(FarmData data)
 {
     m_AnimalData      = data;
     animalLandList    = data.land_list;
     AnimalUnlockNum   = data.unlocked;
     AnimalFastRipeNum = data.fast_ripe;
     foreach (var animal in animalLandList)
     {
         AddSeedToDic(animal.farm_id + animalIndexStart, animal.seed_id);
     }
 }
示例#19
0
        public void DeleteField(string name)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field    fld = yd.fields.FirstOrDefault(f => f.fieldName == name);

            yd.fields.Remove(fld);

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#20
0
        public void DeleteFarmManure(int id)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData   yd = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            FarmManure fm = yd.farmManures.FirstOrDefault(f => f.id == id);

            yd.farmManures.Remove(fm);

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#21
0
        public IActionResult Download()
        {
            FarmData farmData = _ud.FarmData();

            farmData.unsaved = false;
            _ud.SaveFarmData(farmData);

            var fileName = farmData.farmDetails.year + " - " + farmData.farmDetails.farmName + ".nmp";

            byte[] fileBytes = Encoding.ASCII.GetBytes(HttpContext.Session.GetString("FarmData"));
            return(File(fileBytes, "application/octet-stream", fileName));
        }
示例#22
0
        public List <Field> GetFields()
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            YearData yd = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);

            if (yd.fields == null)
            {
                yd.fields = new List <Field>();
            }

            return(yd.fields);
        }
示例#23
0
        public FarmData FarmData()
        {
            FarmData farmData = null;

            try
            {
                farmData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");
            }
            catch (Exception ex)
            {
            }
            return(farmData);
        }
示例#24
0
        public void DeleteFieldNutrientsFertilizer(string fldName, int id)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData           yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field              fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            NutrientFertilizer nf  = fld.nutrients.nutrientFertilizers.FirstOrDefault(m => m.id == id);

            fld.nutrients.nutrientFertilizers.Remove(nf);

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#25
0
        public void UpdateField(Field updtFld)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field    fld = yd.fields.FirstOrDefault(f => f.id == updtFld.id);

            fld.fieldName = updtFld.fieldName;
            fld.area      = updtFld.area;
            fld.comment   = updtFld.comment;

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#26
0
        public IActionResult FileLoad()
        {
            FileLoadViewModel lvm = new FileLoadViewModel();

            lvm.warningMsg = _sd.GetUserPrompt("fileoverwritewarning");
            FarmData farmData = _ud.FarmData();

            if (farmData != null && farmData.unsaved)
            {
                lvm.unsavedData = true;
            }

            return(View(lvm));
        }
示例#27
0
        public void NewFarm()
        {
            string   newYear  = DateTime.Now.ToString("yyyy");
            FarmData userData = new FarmData();

            userData.farmDetails      = new FarmDetails();
            userData.farmDetails.year = newYear;
            userData.years            = new List <YearData>();
            userData.years.Add(new YearData()
            {
                year = newYear
            });
            userData.unsaved = true;
            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }
示例#28
0
        public IActionResult Index()
        {
            _ud.SetActiveSession();
            IndexViewModel lvm = new IndexViewModel();
            FarmData       fd  = _ud.FarmData();

            if (fd != null && fd.unsaved)
            {
                lvm.unsavedData = true;
            }

            lvm.welcomeMsg            = _sd.GetUserPrompt("welcome");
            lvm.disclaimerMsg         = _sd.GetUserPrompt("disclaimer");
            lvm.staticDataVersionMsg  = _sd.GetStaticDataVersion();
            lvm.browserAgent          = _bd.BrowserAgent;
            lvm.fileLoadLabelText     = _sd.GetUserPrompt("FileLoadQuestion");
            lvm.ExplainFileLoad       = _sd.GetUserPrompt("ExplainFileLoad");
            lvm.DeviceTooSmallMessage = _sd.GetUserPrompt("DeviceTooSmallMessage");

            if (_bd.OSValid)
            {
                if (_bd.BrowserValid)
                {
                    if (_bd.BrowserOutofdate)
                    {
                        lvm.browserMsg = string.Format(_sd.GetUserPrompt("browseroutofdate"), _bd.BrowserUpdate);
                    }
                }
                else
                {
                    lvm.browserMsg = _sd.GetUserPrompt("unknownbrowser");
                }
            }
            else
            {
                lvm.browserMsg = _sd.GetUserPrompt("invaliddevice");
            }

            ViewBag.Title = "NMP";
            //LoadStatic();

            lvm.newMsg   = _sd.GetUserPrompt("launchNew");
            lvm.loadMsg  = _sd.GetUserPrompt("launchLoad");
            lvm.pageMsg1 = _sd.GetUserPrompt("launchMsg1");
            lvm.pageMsg2 = _sd.GetUserPrompt("launchMsg2");

            return(View(lvm));
        }
示例#29
0
        public Field GetFieldDetails(string fieldName)
        {
            Field    fld      = new Field();
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            YearData yd = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);

            if (yd.fields == null)
            {
                yd.fields = new List <Field>();
            }

            fld = yd.fields.FirstOrDefault(y => y.fieldName == fieldName);

            return(fld);
        }
示例#30
0
        public void DeleteFieldCrop(string fldName, int id)
        {
            FarmData userData = _ctx.HttpContext.Session.GetObjectFromJson <FarmData>("FarmData");

            userData.unsaved = true;
            YearData  yd  = userData.years.FirstOrDefault(y => y.year == userData.farmDetails.year);
            Field     fld = yd.fields.FirstOrDefault(f => f.fieldName == fldName);
            FieldCrop crp = fld.crops.FirstOrDefault(m => m.id == id);

            fld.crops.Remove(crp);
            if (fld.crops.Count() == 0)
            {
                fld.crops = null;
            }

            _ctx.HttpContext.Session.SetObjectAsJson("FarmData", userData);
        }