Exemple #1
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);
        }
Exemple #2
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);
        }
Exemple #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);
        }
Exemple #4
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);
        }
Exemple #5
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);
        }
Exemple #6
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);
        }
        public AppliedStoredManure GetAppliedStoredManure(YearData yearData, FarmManure farmManure)
        {
            var manureStorageSystem = yearData.ManureStorageSystems.SingleOrDefault(mss => mss.Id == farmManure.sourceOfMaterialStoredSystemId);
            var appliedStoredManure = GetAppliedManureFromStorageSystem(yearData, manureStorageSystem);

            return(appliedStoredManure);
        }
Exemple #8
0
    private void SaveData()
    {
        string          dataPath        = string.Format("{0}/YearData.dat", Application.persistentDataPath);
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      fileStream;

        /*==== The following lines are where I update what things are to be saved ====*/
        YearData yData = new YearData();

        if (ovc.inputAmt.text.Length != 0)
        {
            yData.overallMoney = ovc.GetAmount();
        }
        else
        {
            yData.overallMoney = int.MinValue;
        }

        yData.activeWeeks = ysc.activeWeeks;

        yData.moneyEachWeek = new int[52];
        for (int i = 0; i < 52; i++)
        {
            if (ysc.weekControllers[i].GoodInput())
            {
                yData.moneyEachWeek[i] = ysc.weekControllers[i].amountMadeThisWeek;
            }
            else
            {
                yData.moneyEachWeek[i] = int.MinValue;
            }
        }

        /*==== End ====*/

        try {
            if (File.Exists(dataPath))
            {
                File.WriteAllText(dataPath, string.Empty);
                fileStream = File.Open(dataPath, FileMode.Open);
            }
            else
            {
                fileStream = File.Create(dataPath);
            }

            binaryFormatter.Serialize(fileStream, yData);
            fileStream.Close();

            /*
             * if (Application.platform == RuntimePlatform.WebGLPlayer || Application.isWebPlayer) {
             *      //SyncFiles();
             * }
             */
        }
        catch (Exception e) {
            //PlatformSafeMessage("Failed to Save: " + e.Message);
            Debug.Log("Failed To Save: " + e.Message);
        }
    }
Exemple #9
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);
        }
Exemple #10
0
    private void SendYearDataMissive(YearData data)
    {
        YearDataMissive missive = new YearDataMissive();

        missive.data = data;
        Missive.Send(missive);
    }
Exemple #11
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);
        }
Exemple #12
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);
        }
Exemple #13
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);
        }
        public AppliedStoredManure GetAppliedManureFromStorageSystem(YearData yearData, ManureStorageSystem manureStorageSystem)
        {
            var fieldsAppliedWithStoredManure = yearData.GetFieldsAppliedWithManure(manureStorageSystem);
            var farmManureIds = yearData.GetFarmManureIds(manureStorageSystem);

            var fieldAppliedManures = new List <FieldAppliedManure>();

            foreach (var field in fieldsAppliedWithStoredManure)
            {
                var nutrientManures = field.nutrients.nutrientManures
                                      .Where(nm => farmManureIds.Any(fm => fm == Convert.ToInt32(nm.manureId)))
                                      .ToList();

                foreach (var nutrientManure in nutrientManures)
                {
                    var fieldAppliedManure = new FieldAppliedManure();
                    if (manureStorageSystem.ManureMaterialType == ManureMaterialType.Liquid)
                    {
                        var convertedRate = _manureUnitConversionCalculator
                                            .GetLiquidUSGallonsPerAcreApplicationRate(nutrientManure.rate,
                                                                                      (ApplicationRateUnits)Convert.ToInt32(nutrientManure.unitId));

                        fieldAppliedManure.USGallonsApplied =
                            field.area * convertedRate;
                    }
                    else
                    {
                        var farmManure = yearData.farmManures
                                         .Single(fm => fm.id == Convert.ToInt32(nutrientManure.manureId));

                        decimal convertedRate;
                        if (string.IsNullOrWhiteSpace(farmManure.moisture))
                        {
                            convertedRate = _manureUnitConversionCalculator
                                            .GetSolidsTonsPerAcreApplicationRate(farmManure.manureId, nutrientManure.rate,
                                                                                 (ApplicationRateUnits)Convert.ToInt32(nutrientManure.unitId));
                        }
                        else
                        {
                            convertedRate = _manureUnitConversionCalculator
                                            .GetSolidsTonsPerAcreApplicationRate(Convert.ToDecimal(farmManure.moisture),
                                                                                 nutrientManure.rate,
                                                                                 (ApplicationRateUnits)Convert.ToInt32(nutrientManure.unitId));
                        }

                        fieldAppliedManure.TonsApplied = field.area * convertedRate;
                    }

                    fieldAppliedManures.Add(fieldAppliedManure);
                }
            }

            var appliedStoredManure = new AppliedStoredManure(fieldAppliedManures, manureStorageSystem);

            return(appliedStoredManure);
        }
Exemple #15
0
        public ManureApplicationCalculatorTests()
        {
            var assembly = Assembly.GetExecutingAssembly();

            using (var stream = assembly.GetManifestResourceStream("Agri.CalculateService.Tests.TestData.YearDataMock.json"))
                using (var reader = new StreamReader(stream))
                {
                    string json = reader.ReadToEnd();
                    _yearData = JsonConvert.DeserializeObject <YearData>(json);
                }
        }
Exemple #16
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);
        }
Exemple #17
0
    /// <summary>
    /// Resets Year Data
    /// </summary>
    /// <param name="numYears"></param>
    private void InitYears(int numYears)
    {
        yearDatabase.Clear();
        for (int i = 0; i < numYears; ++i)
        {
            YearData newYear = new YearData();
            newYear.Init(1900 + i);
            yearDatabase.Add(newYear);
        }

        mostPopulousYear = yearDatabase[0];
    }
Exemple #18
0
    private bool LoadData()
    {
        string dataPath = string.Format("{0}/YearData.dat", Application.persistentDataPath);

        try {
            if (File.Exists(dataPath))
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                FileStream      fileStream      = File.Open(dataPath, FileMode.Open);

                /*==== The following lines are where I update what things are to be loaded ====*/
                YearData newData = (YearData)binaryFormatter.Deserialize(fileStream);

                if (newData.overallMoney != int.MinValue)
                {
                    amountForYear     = newData.overallMoney;
                    ovc.inputAmt.text = "" + newData.overallMoney;
                }

                for (int i = 0; i < 52; i++)
                {
                    if (!newData.activeWeeks[i])
                    {
                        ysc.activeWeeks[i] = false;
                        ysc.weekControllers[i].isActive = false;
                    }
                }

                for (int i = 0; i < 52; i++)
                {
                    if (newData.moneyEachWeek[i] != int.MinValue)
                    {
                        ysc.weekControllers[i].SetAmount(newData.moneyEachWeek[i]);
                    }
                }


                /*==== End ====*/

                fileStream.Close();
                return(true);
            }
            else
            {
                return(false);
            }
        }
        catch (Exception e) {
            //PlatformSafeMessage("Failed to Load: " + e.Message);
            Debug.Log("Failed To Load: " + e.Message);
            return(false);
        }
    }
Exemple #19
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);
        }
Exemple #20
0
        protected override void Reload()
        {
            years.Clear();

            Photo [] photos = query.Store.Query((Tag [])null, null, null, null);
            Array.Sort(query.Photos);
            Array.Sort(photos);

            if (!order_ascending)
            {
                Array.Reverse(query.Photos);
                Array.Reverse(photos);
            }

            if (photos.Length > 0)
            {
                YearData data = new YearData();
                data.Year = 0;

                foreach (Photo photo in photos)
                {
                    int current = photo.Time.Year;
                    if (current != data.Year)
                    {
                        data.Year   = current;
                        data.Months = new int [12];
                        years.Add(data);
                        //Console.WriteLine ("Found Year {0}", current);
                    }
                    if (order_ascending)
                    {
                        data.Months [photo.Time.Month - 1] += 1;
                    }
                    else
                    {
                        data.Months [12 - photo.Time.Month] += 1;
                    }
                }
            }
            else
            {
                YearData data = new YearData();
                data.Year   = DateTime.Now.Year;
                data.Months = new int [12];
                years.Add(data);
            }

            if (Changed != null)
            {
                Changed(this);
            }
        }
Exemple #21
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);
        }
Exemple #22
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);
        }
Exemple #23
0
    private void OnYearData(YearDataMissive missive)
    {
        if (currentYearData == null)
        {
            currentYearData = new YearData();
        }

        sliderText.text      = missive.data.yearLabel;
        yearSlider.value     = missive.data.year;
        currentYearData.year = missive.data.year;
        sliderText.color     = Color.yellow;
        CancelInvoke();
        Invoke("TimedSliderTextChange", effectTimeLength);
    }
Exemple #24
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);
        }
Exemple #25
0
 public void SetCurrentTime(YearData data)
 {
     for (int i = 0; i < yearData.Length; i++)
     {
         if (data.year == yearData[i].year)
         {
             currentYear      = data.year;
             currentYearIndex = i;
             return;
         }
     }
     // default if not correct year
     currentYear      = yearData[0].year;
     currentYearIndex = 0;
 }
Exemple #26
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);
        }
        public AppliedManure GetAppliedManure(YearData yearData, FarmManure farmManure)
        {
            AppliedManure appliedManure = null;

            if (farmManure.stored_imported == NutrientAnalysisTypes.Stored)
            {
                //Stored Manure
                appliedManure = GetAppliedStoredManure(yearData, farmManure);
            }
            else if (farmManure.stored_imported == NutrientAnalysisTypes.Imported)
            {
                appliedManure = GetAppliedImportedManure(yearData, farmManure);
            }

            return(appliedManure);
        }
Exemple #28
0
    public void OnEndDrag(BaseEventData eventData)
    {
        int      currentValue = Mathf.RoundToInt(yearSlider.value);
        YearData nearest      = ControlManager.instance.yearData.OrderBy(x => Mathf.Abs((long)x.year - currentValue)).First();

        if (nearest.year != yearSlider.value)
        {
            SendYearDataMissive(nearest);
            ControlManager.instance.SetCurrentTime(nearest);
        }
        else
        {
            sliderText.text      = nearest.yearLabel;
            yearSlider.value     = nearest.year;
            currentYearData.year = nearest.year;
        }
    }
Exemple #29
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);
        }
        private AppliedManure GetAppliedCollectedManure(YearData yearData, FarmManure farmManure)
        {
            //Since the manures ared grouped and as long as one is used to identify the field
            //the farmManure is applied, we can determine the FieldAppliedManures
            //We then pass the list of grouped manures in to order to aggregate the total available for application
            var fieldAppliedManures = new List <FieldAppliedManure>();
            var groupedManures      = new List <ManagedManure>();

            var farmAnimals = yearData.FarmAnimals
                              .Where(fa => farmManure.GroupedWithCollectedAnalysisSourceItemIds
                                     .Where(ids => ids.SourceType == NutrientAnalysisTypes.Collected)
                                     .Select(ids => ids.SourceId).Contains(fa.Id.Value))
                              .Select(fa => fa as ManagedManure)
                              .ToList();

            groupedManures.AddRange(farmAnimals);
            var farmAnimalIds = farmAnimals.Select(fa => fa.Id.GetValueOrDefault(0)).ToList();

            fieldAppliedManures.AddRange(GetFieldsAppliedCollectedManureForFarmAnimals(farmAnimalIds, farmManure, yearData));

            var importedManures = yearData.ImportedManures
                                  .Where(imported => farmManure.GroupedWithCollectedAnalysisSourceItemIds
                                         .Where(ids => ids.SourceType == NutrientAnalysisTypes.Imported)
                                         .Select(ids => ids.SourceId).Contains(imported.Id.Value))
                                  .Select(fa => fa as ManagedManure)
                                  .ToList();

            groupedManures.AddRange(importedManures);

            var importedManure = importedManures.FirstOrDefault();

            if (!fieldAppliedManures.Any() && importedManure != null)
            {
                fieldAppliedManures.AddRange(CalculateFieldAppliedImportedManure(yearData, farmManure, importedManure as ImportedManure));
            }

            var appliedCollectedManure = new AppliedGroupedManure(fieldAppliedManures,
                                                                  groupedManures,
                                                                  farmManure.Name)
            {
                ManureMaterialName = farmManure.Name
            };

            return(appliedCollectedManure);
        }
		protected override void Reload () 
		{
			years.Clear ();

			Photo [] photos = query.Store.Query ((Tag [])null, null, null, null);
			Array.Sort (query.Photos);
			Array.Sort (photos);

			if (!order_ascending) {				
				Array.Reverse (query.Photos);
				Array.Reverse (photos);
			}

			if (photos.Length > 0) {
				YearData data = new YearData ();
				data.Year = 0;

				foreach (Photo photo in photos) {
					int current = photo.Time.Year;
					if (current != data.Year) {
						
						data.Year = current;
						data.Months = new int [12];
						years.Add (data);
						//Console.WriteLine ("Found Year {0}", current);
					}
					if (order_ascending)
						data.Months [photo.Time.Month - 1] += 1;
					else
						data.Months [12 - photo.Time.Month] += 1;
				}
			} else {
				YearData data = new YearData ();
				data.Year = DateTime.Now.Year;
				data.Months = new int [12];
				years.Add (data);
			}

 			if (Changed != null)
				Changed (this);
		}
Exemple #32
0
    public static List<YearData> GetOverlookDriverNodeData(String CardID, String OrgID, String StartDate, String EndDate)
    {
        List<YearData> result = new List<YearData>();
        try
        {
            string connectionString = ConfigurationManager.AppSettings["fleetnetbaseConnectionString"];
            DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);
            int orgId = Convert.ToInt32(OrgID);
            int cardId = Convert.ToInt32(CardID);
            dataBlock.OpenConnection();

            DateTime startDate = DateTime.Parse(StartDate);
            DateTime endDate = DateTime.Parse(EndDate);

            if (startDate.CompareTo(endDate) >= 0)
            {
                return null;
            }

            List<int> years = getYearsList(startDate, endDate);

            List<int> blocks = dataBlock.cardsTable.GetAllDataBlockIds_byCardId(cardId);

            int count = 0;
            foreach (int year in years)
            {
                double py = 0;
                foreach (int block in blocks)
                {
                    py += dataBlock.plfUnitInfo.Statistics_GetYearStatistics(new DateTime(year, 1, 1), block);
                }
                YearData datay = new YearData();
                datay.YearName = year.ToString();
                datay.Percent = py.ToString();
                datay.key = count;
                result.Add(datay);
                count++;
                if (py == 0)
                    continue;
                List<int> months = getMonthsList(year, startDate, endDate);
                foreach (int month in months)
                {
                    double pm = 0;
                    foreach (int block in blocks)
                    {
                        pm += dataBlock.plfUnitInfo.Statistics_GetMonthStatistics(new DateTime(year, month, 1), block);
                    }
                    YearData datam = new YearData();
                    datam.MonthName = getMonthName(month);
                    datam.Percent = pm.ToString();
                    datam.key = count;
                    result.Add(datam);
                    count++;
                    if (pm == 0)
                        continue;
                    List<int> days = getDaysList(year, month, startDate, endDate);
                    foreach (int day in days)
                    {
                        double p = 0;
                        foreach (int block in blocks)
                        {
                            p += dataBlock.plfUnitInfo.Statistics_GetDayStatistics(new DateTime(year, month, day), block);
                        }
                        if (p == 0)
                            continue;
                        YearData data = new YearData();
                        data.DayName = day.ToString();
                        data.Percent = p.ToString();
                        data.key = count;
                        result.Add(data);
                        count++;
                    }
                }
            }

            dataBlock.CloseConnection();
            if (result.Count == 0)
                return null;
        }
        catch (Exception ex)
        {
            throw ex;
            //return null;
        }
        return result;
    }