示例#1
0
        public void UpdateField(Field field)
        {
            var fieldDto = new FieldsData
            {
                Id      = field.Id,
                Culture = field.Culture,

                HouseLocation = field.HouseLocation,

                CultureSeedPrice = field.CultureSeedPrice,
                FertilizePrice   = field.FertilizePrice,
                HarvestTax       = field.HarvestTax,

                Ready       = field.FieldsStages[AgriculturalStageEnum.Ready].StartDate,
                Grazing     = field.FieldsStages[AgriculturalStageEnum.Grazing].StartDate,
                Fertilizing = field.FieldsStages[AgriculturalStageEnum.Fertilizing].StartDate,
                Sowing      = field.FieldsStages[AgriculturalStageEnum.Sowing].StartDate,
                Growing     = field.FieldsStages[AgriculturalStageEnum.Growing].StartDate,
                Harvesting  = field.FieldsStages[AgriculturalStageEnum.Harvesting].StartDate,
                Restoring   = field.FieldsStages[AgriculturalStageEnum.Restoring].StartDate,

                GrazingPeriod     = field.FieldsStages[AgriculturalStageEnum.Grazing].Duration,
                FertilizingPeriod = field.FieldsStages[AgriculturalStageEnum.Fertilizing].Duration,
                SowingPeriod      = field.FieldsStages[AgriculturalStageEnum.Sowing].Duration,
                GrowingPeriod     = field.FieldsStages[AgriculturalStageEnum.Growing].Duration,
                HarvestingPeriod  = field.FieldsStages[AgriculturalStageEnum.Harvesting].Duration,
                RestoringPeriod   = field.FieldsStages[AgriculturalStageEnum.Restoring].Duration
            };

            using var _context             = new ClonesDbContext();
            _context.Entry(fieldDto).State = EntityState.Modified;
            _context.SaveChanges();
        }
        private static void AddLanguages(Item item, ItemsLanguagesData languagesData)
        {
            var languages = new ItemLanguagesData();

            languagesData.Add(item.ID, languages);

            foreach (var pair in item.Fields.Unversioned)
            {
                var          languageName = pair.Key;
                VersionsData languageFields;
                if (!languages.TryGetValue(languageName, out languageFields))
                {
                    languageFields = new VersionsData();
                    languages.Add(languageName, languageFields);
                }

                var unversionedFields = languageFields.TryGetValue(0);
                if (unversionedFields == null)
                {
                    unversionedFields = new FieldsData();
                    languageFields.Add(0, unversionedFields);
                }

                foreach (var field in pair.Value.OrderBy(x => Guid.Parse(x.Key)).ToArray())
                {
                    unversionedFields.Add(Guid.Parse(field.Key), field.Value);
                }
            }

            foreach (var pair in item.Fields.Versioned)
            {
                var          languageName = pair.Key;
                VersionsData languageFields;
                if (!languages.TryGetValue(languageName, out languageFields))
                {
                    languageFields = new VersionsData();
                    languages.Add(languageName, languageFields);
                }

                foreach (var versionPair in pair.Value)
                {
                    var versionNumber = versionPair.Key;
                    var version       = languageFields.TryGetValue(versionNumber);
                    if (version == null)
                    {
                        version = new FieldsData();
                        languageFields.Add(versionNumber, version);
                    }

                    var versionFields = versionPair.Value
                                        .Select(x => CreatePair(Guid.Parse(x.Key), x.Value))
                                        .OrderBy(x => x.Key);

                    foreach (var field in versionFields)
                    {
                        version.Add(field.Key, field.Value);
                    }
                }
            }
        }
        private static void AddShared(Item item, ItemsSharedData itemsSharedData)
        {
            var sharedFields = new FieldsData();

            itemsSharedData.Add(item.ID, sharedFields);

            foreach (var field in item.Fields.Shared.OrderBy(x => Guid.Parse(x.Key)).ToArray())
            {
                sharedFields.Add(Guid.Parse(field.Key), field.Value);
            }
        }
示例#4
0
        private Dictionary <AgriculturalStageEnum, FieldsStage> GetFieldsStages(FieldsData field)
        {
            var stages = new Dictionary <AgriculturalStageEnum, FieldsStage>
            {
                { AgriculturalStageEnum.Ready, BuildFieldStage(AgriculturalStageEnum.Ready, field.Ready, new TimeSpan(0)) },
                { AgriculturalStageEnum.Grazing, BuildFieldStage(AgriculturalStageEnum.Grazing, field.Grazing, field.GrazingPeriod) },
                { AgriculturalStageEnum.Fertilizing, BuildFieldStage(AgriculturalStageEnum.Fertilizing, field.Fertilizing, field.FertilizingPeriod) },
                { AgriculturalStageEnum.Sowing, BuildFieldStage(AgriculturalStageEnum.Sowing, field.Sowing, field.SowingPeriod) },
                { AgriculturalStageEnum.Growing, BuildFieldStage(AgriculturalStageEnum.Growing, field.Growing, field.GrowingPeriod) },
                { AgriculturalStageEnum.Harvesting, BuildFieldStage(AgriculturalStageEnum.Harvesting, field.Harvesting, field.HarvestingPeriod) },
                { AgriculturalStageEnum.Restoring, BuildFieldStage(AgriculturalStageEnum.Restoring, field.Restoring, field.RestoringPeriod) }
            };

            return(stages);
        }
示例#5
0
        private Field ConvertFromDto(FieldsData field)
        {
            var result = new Field
            {
                Id      = field.Id,
                Culture = field.Culture,

                HouseLocation = field.HouseLocation,

                CultureSeedPrice = field.CultureSeedPrice,
                FertilizePrice   = field.FertilizePrice,
                HarvestTax       = field.HarvestTax,
            };

            var stages = GetFieldsStages(field);

            result.FieldsStages = stages;

            return(result);
        }
示例#6
0
        public void AddFields(List <Field> fields)
        {
            using var _context = new ClonesDbContext();
            var fieldsData = _context.Fields;

            foreach (var field in fields)
            {
                var stages = field.FieldsStages;

                var item = new FieldsData
                {
                    HouseLocation = field.HouseLocation,

                    CultureSeedPrice = field.CultureSeedPrice,
                    FertilizePrice   = field.FertilizePrice,
                    HarvestTax       = field.HarvestTax,

                    Ready       = field.FieldsStages[AgriculturalStageEnum.Ready].StartDate,
                    Grazing     = field.FieldsStages[AgriculturalStageEnum.Grazing].StartDate,
                    Fertilizing = field.FieldsStages[AgriculturalStageEnum.Fertilizing].StartDate,
                    Sowing      = field.FieldsStages[AgriculturalStageEnum.Sowing].StartDate,
                    Growing     = field.FieldsStages[AgriculturalStageEnum.Growing].StartDate,
                    Harvesting  = field.FieldsStages[AgriculturalStageEnum.Harvesting].StartDate,
                    Restoring   = field.FieldsStages[AgriculturalStageEnum.Restoring].StartDate,

                    GrazingPeriod     = field.FieldsStages[AgriculturalStageEnum.Grazing].Duration,
                    FertilizingPeriod = field.FieldsStages[AgriculturalStageEnum.Fertilizing].Duration,
                    SowingPeriod      = field.FieldsStages[AgriculturalStageEnum.Sowing].Duration,
                    GrowingPeriod     = field.FieldsStages[AgriculturalStageEnum.Growing].Duration,
                    HarvestingPeriod  = field.FieldsStages[AgriculturalStageEnum.Harvesting].Duration,
                    RestoringPeriod   = field.FieldsStages[AgriculturalStageEnum.Restoring].Duration
                };
                fieldsData.Add(item);
            }

            _context.SaveChanges();
        }
示例#7
0
 protected FieldsData(FieldsData fields) : this(fields.proxy)
 {
     dict   = new Dictionary <string, object>(fields.dict);
     IsInit = false;
 }
示例#8
0
 public VirtualObjectProxy(TypeConstruct type) : base(ProxyType(type))
 {
     VirtualType = type;
     Fields      = new FieldsData(this);
 }