Пример #1
0
        private List <System.Web.Mvc.SelectListItem> LoadCountries(long?countryId = null, City city = null)
        {
            CountryConfiguration cc = new CountryConfiguration();

            List <Country> countries = cc.GetAllCountries();
            List <System.Web.Mvc.SelectListItem> result = new List <SelectListItem>();

            foreach (var item in countries)
            {
                bool isSelected = false;
                if (city != null && countryId.HasValue)
                {
                    isSelected = (city.CountryId == countryId);
                }

                SelectListItem sl = new SelectListItem()
                {
                    Value    = item.CountryId.ToString(),
                    Text     = item.Name,
                    Selected = isSelected
                };

                result.Add(sl);
            }

            return(result);
        }
Пример #2
0
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            CountryConfiguration.OnModelCreating(builder);
            DistrictConfiguration.OnModelCreating(builder);
            DetectionPointConfiguration.OnModelCreating(builder);
        }
Пример #3
0
        public void Instance_Is_GeographyConfiguration()
        {
            //Arrange
            var type = typeof(GeographyConfiguration <Country>);

            //Act
            var configuration = new CountryConfiguration();

            //Assert
            Assert.IsInstanceOf(type, configuration);
        }
Пример #4
0
        public ActionResult Create([Bind(Include = "CountryId,Name,LanguageId,CapitalId, CapitalName, CapitalLatitude, CapitalLongitude")] CountryViewModel countryMapped)
        {
            if (ModelState.IsValid)
            {
                long lLastCountryId;
                long lLastCityId;
                CountryConfiguration lCountryConfiguration;
                lCountryConfiguration = new CountryConfiguration();

                Country country = new Country();

                country.Name       = countryMapped.Name;
                country.LanguageId = countryMapped.LanguageId;
                db.Countries.Add(country);
                db.SaveChanges();

                lLastCountryId = lCountryConfiguration.GetMaxCountryId();

                City lCity;
                if (countryMapped.CapitalId == -1) //es una nueva ciudad, se debe ingresar.
                {
                    CityConfiguration lCityConfiguration;
                    lCityConfiguration = new CityConfiguration();

                    Position lPosition = new Position();
                    lCity               = new City();
                    lCity.Name          = countryMapped.CapitalName;
                    lPosition.Name      = countryMapped.CapitalName + " - Ciudad";
                    lPosition.Latitude  = double.Parse(countryMapped.CapitalLatitude);
                    lPosition.Longitude = double.Parse(countryMapped.CapitalLongitude);
                    lCity.Country       = country;
                    lCity.CountryId     = lLastCountryId;
                    db.Positions.Add(lPosition);
                    db.Cities.Add(lCity);
                    db.SaveChanges();
                    lLastCityId = lCityConfiguration.GetMaxCityId();
                }
                else
                {
                    lCity       = db.Cities.Find(countryMapped.CapitalId);
                    lLastCityId = lCity.CityId;
                }

                //actualiza la informacion del pais con la capital
                country.Capital         = lCity;
                country.CapitalId       = lLastCityId;
                db.Entry(country).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(Redirect("/Countries"));
            //return View("~/Views/Localization/Countries/Index.cshtml", db.Countries.ToList());
        }
Пример #5
0
        public ActionResult Create([Bind(Include = "CityId, Name, Latitude, Longitude, CountryId, CountryName, CountryLanguageId")] CityViewModel cityViewModelMapped)
        {
            if (ModelState.IsValid)
            {
                City city = new City();

                long     positionId   = GetPositionId(cityViewModelMapped.Latitude, cityViewModelMapped.Longitude);
                Position positionCity = new Position();
                //Not exist position
                if (positionId == 0)
                {
                    positionCity.Latitude  = cityViewModelMapped.Latitude;
                    positionCity.Longitude = cityViewModelMapped.Longitude;
                    positionCity.Name      = cityViewModelMapped.Name + " - Ciudad";
                    city.Position          = positionCity;
                }
                else
                {
                    city.PositionId = positionId;
                }

                Country country;
                if (cityViewModelMapped.CountryId == -1) //es una nueva pais, se debe ingresar.
                {
                    CountryConfiguration lCountryConfiguration = new CountryConfiguration();
                    country            = new Country();
                    country.Name       = cityViewModelMapped.CountryName;
                    country.LanguageId = cityViewModelMapped.CountryLanguageId;
                    db.Countries.Add(country);
                    city.Country = country;
                    db.SaveChanges();
                    city.CountryId = lCountryConfiguration.GetMaxCountryId();
                }
                else
                {
                    city.CountryId = cityViewModelMapped.CountryId;
                }

                city.Name = cityViewModelMapped.Name;

                db.Cities.Add(city);
                db.SaveChanges();
            }
            return(Redirect("/Cities"));
            //return View("~/Views/Localization/Cities/Index.cshtml", db.Cities.ToList());
        }
Пример #6
0
        private List <System.Web.Mvc.SelectListItem> LoadCountry(long?countryId = null)
        {
            CountryConfiguration rc                     = new CountryConfiguration();
            List <Country>       countryList            = rc.GetAllCountries();
            List <System.Web.Mvc.SelectListItem> result = new List <SelectListItem>();

            foreach (var item in countryList)
            {
                bool isSelected = false;

                SelectListItem sl = new SelectListItem()
                {
                    Value    = item.CountryId.ToString(),
                    Text     = item.Name,
                    Selected = isSelected
                };
                result.Add(sl);
            }
            return(result);
        }
Пример #7
0
        public static CountryConfiguration Germany()
        {
            var country = new CountryConfiguration()
            {
                Country  = Country.Germany,
                Culture  = "de-DE",
                Defaults = "Christian",
                Url      = "https://publicholidays.de",
                Periods  = new List <PeriodConfiguration>()
                {
                    new PeriodConfiguration()
                    {
                        Name         = "Reformation Day", RuleDate = "10-31", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name         = "Epiphany", RuleDate = "1-6", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name         = "Day of German Unity", RuleDate = "10-3", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                        }
                    },

                    // first wednesday before 23 Nov.
                    new PeriodConfiguration()
                    {
                        Name         = "Day of Prayer and Repentance", RuleDate = "(11-23) << Wednesdays", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name         = "New Year's Day", RuleDate = "1-1", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Language = Language.French, Name = "Jour de l'an"
                            },
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name         = "Labor Day", RuleDate = "5-1", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Language = Language.French, Name = "Fête du travail"
                            },
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name = "Christmas Eve", RuleDate = "12-24", Free = true, Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Name = "Reveillon de Noël", Language = Language.French
                            },
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name = "Christmas 2nd Day", RuleDate = "12-26", Free = true, Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Name = "St étienne", Language = Language.French
                            },
                        }
                    },

                    new PeriodConfiguration()
                    {
                        Name = "Sylvester", RuleDate = "12-31", Free = true, Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Name = "St sylvestre", Language = Language.French
                            },
                            new NameConfiguration()
                            {
                                Name = "Sylvester", Language = Language.German
                            },
                        }
                    },

                    //  It is celebrated on the Thursday that is 60 days after Easter Sunday and 10 days after Pentecost
                    new PeriodConfiguration()
                    {
                        Name         = "Corpus Christi", RuleDate = "[EASTER] + 59", Free = true,
                        Translations = new List <NameConfiguration>()
                        {
                            new NameConfiguration()
                            {
                                Language = Language.French, Name = "Fête-Dieu"
                            },
                        }
                    },
                },

                Regions = new List <RegionConfiguration>()
                {
                    //new RegionConfiguration()
                    //{
                    //    Key = "67",
                    //    Periods = new List<PeriodConfiguration>()
                    //    {


                    //    }
                    //},
                }
            };

            return(country);
        }
Пример #8
0
        public void GenerateConfig()
        {
            var dirChecked         = new System.IO.DirectoryInfo(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", "Black.Beard.Calendarium", "Countries"));
            var dirNotChecked      = new System.IO.DirectoryInfo(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", "Black.Beard.Calendarium", "Countries", "NotChecked"));
            var dirNotCheckedClean = new System.IO.DirectoryInfo(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", "Black.Beard.Calendarium", "Countries", "NotCheckedClean"));

            if (!dirNotChecked.Exists)
            {
                dirNotChecked.Create();
            }

            if (!dirNotCheckedClean.Exists)
            {
                dirNotCheckedClean.Create();
            }

            var referential = Helper.Referential;

            foreach (var countryItem in referential)
            {
                StringBuilder sb    = new StringBuilder(2000);
                var           infos = CountryHelper.GetInfos(countryItem.Key);
                bool          clean = true;

                if (infos.Item3.Length == 0)
                {
                    continue;
                }

                var config = new CountryConfiguration()
                {
                    Country  = countryItem.Key,
                    Calendar = infos.Item3[0],
                };

                if (!string.IsNullOrEmpty(infos.Item1))
                {
                    config.Culture  = infos.Item2;
                    config.Calendar = infos.Item3[0];

                    foreach (var calendar in infos.Item3)
                    {
                        sb.AppendLine($"// calendar : {calendar}");
                    }

                    sb.AppendLine(string.Empty);
                }

                Dictionary <string, Dictionary <string, Liststring> > _doc = new Dictionary <string, Dictionary <string, Liststring> >();
                foreach (var date in countryItem.Value)
                {
                    if (date.Reconstitued)
                    {
                        clean = false;
                        sb.AppendLine($"// Orphan observed date {date.DayName} : {date.ObservedDate.Date}");
                        continue;
                    }

                    if (!_doc.TryGetValue(date.DayName, out Dictionary <string, Liststring> _dic))
                    {
                        _doc.Add(date.DayName, _dic = new Dictionary <string, Liststring>());
                    }

                    var u3 = date.Date.Split('-');

                    string rule = $"{int.Parse(u3[u3.Length - 2])}-{int.Parse(u3[u3.Length - 1])}";

                    if (!_dic.TryGetValue(rule, out Liststring years))
                    {
                        _dic.Add(rule, years = new Liststring());
                    }

                    years.Years.Add(int.Parse(u3[0]).ToString());

                    if (date.ObservedDate != null)
                    {
                        years.Observeds.Add($"{date.DayName},{date.Date.Split('-')[2]},{date.ObservedDate.Date.Split('-')[2]}");
                    }
                }


                foreach (var day in _doc)
                {
                    var _h = new HashSet <string>();

                    foreach (var rule in day.Value)
                    {
                        PeriodConfiguration p = null;

                        if (rule.Value.Years.Count > 5)
                        {
                            p = new PeriodConfiguration(day.Key, true, rule.Key)
                            {
                                CultureInfo = CultureInfo.GetCultureInfo(infos.Item2),
                            };

                            config.Periods.Add(p);

                            if (int.Parse(rule.Value.Years[0]) < 2000)
                            {
                                p.Calendar = CalendarEnum.Hijri;
                            }
                            else if (int.Parse(rule.Value.Years[0]) > 3000)
                            {
                                p.Calendar = CalendarEnum.Julian;
                            }
                        }
                        else
                        {
                            var _rule = Helper.GetRule(day.Key);
                            if (string.IsNullOrEmpty(_rule))
                            {
                                clean = false;
                                var dates = string.Join(',', rule.Value);
                                sb.AppendLine($"// Date : {day.Key}, {rule.Key}, {dates}");
                            }

                            else if (_rule == "<<NotImplemented>>")
                            {
                            }
                            else
                            {
                                if (_h.Add(day.Key + " - " + _rule))
                                {
                                    p = new PeriodConfiguration(day.Key, true, _rule)
                                    {
                                        CultureInfo = CultureInfo.GetCultureInfo(infos.Item2),
                                    };

                                    config.Periods.Add(p);
                                }
                            }
                        }

                        if (rule.Value.Observeds.Count > 0)
                        {
                            foreach (var item in rule.Value.Observeds)
                            {
                                var days = item.Split(',');

                                string name = days[0];
                                int    d1   = int.Parse(days[1]);
                                int    d2   = int.Parse(days[2]);

                                var ds = d2 - d1;

                                if (d2 == 31 && d1 == 1)
                                {
                                    ds = 1;
                                }

                                if (ds > 2)
                                {
                                    clean = false;
                                    sb.AppendLine($"// Observed date {item}");
                                }

                                var it = config.Periods.First(c => c.Name == name);

                                if (string.IsNullOrEmpty(it.RuleObserved) || ds > 1)
                                {
                                    it.RuleObserved = ds == 1
                                        ? "? (SUNDAY) : >> MONDAY"
                                        : "? (SATURDAY | SUNDAY) : >> MONDAY"
                                    ;
                                }
                            }
                        }
                    }
                }

                if (!File.Exists(config.GetFilname(dirChecked)))
                {
                    sb = config.Serialize(sb);

                    if (clean)
                    {
                        config.Save(dirNotCheckedClean, sb);
                    }
                    else
                    {
                        config.Save(dirNotChecked, sb);
                    }
                }
            }
        }
Пример #9
0
        public static CountryConfiguration France()
        {

            var country = new CountryConfiguration()
            {

                Country = Country.France,
                Culture = "fr-FR",
                Defaults = "Christian",
                Url = "https://www.joursferies.fr/",
                Periods = new List<PeriodConfiguration>()
                {

                    new PeriodConfiguration() { Name = "Armistice Day 1918", RuleDate = "11-11", Free = true,
                        Translations = new List<NameConfiguration>()
                        {
                            new NameConfiguration() { Language =  Language.English, Name = "Armistice Day 1918" },
                        } },

                    new PeriodConfiguration() { Name = "New Year's Day", RuleDate = "1-1", Free = true,
                        Translations = new List<NameConfiguration>() {
                            new NameConfiguration() { Language =  Language.English, Name = "New year's Day" },
                        } },

                    new PeriodConfiguration() { Name = "Victory Day", RuleDate = "5-8", Free = true,
                        Translations = new List<NameConfiguration>() {
                            new NameConfiguration() { Language =  Language.English, Name = "Victory Day" },
                        } },

                    new PeriodConfiguration() { Name = "Labor Day", RuleDate = "5-1", Free = true,
                        Translations = new List<NameConfiguration>() {
                            new NameConfiguration() { Language =  Language.English, Name = "Labor Day" },
                        } },

                    new PeriodConfiguration() { Name = "Bastille Day", RuleDate = "7-14", Free = true,
                        Translations = new List<NameConfiguration>() {
                            new NameConfiguration() { Language =  Language.English, Name = "Bastille Day" },
                        },
                    },

                },

                Regions = new List<RegionConfiguration>()
                {
                    new RegionConfiguration()
                    {
                        Key = "67",
                        Periods = new List<PeriodConfiguration>()
                        {

                            new PeriodConfiguration() { Name = "Christmas Eve", RuleDate = "12-24", Free = true, Translations = new List<NameConfiguration>() {
                                new NameConfiguration() { Name = "Reveillon de Noël", Language =  Language.French },
                            } },

                            new PeriodConfiguration() { Name = "Christmas 2nd Day", RuleDate = "12-26", Free = true, Translations = new List<NameConfiguration>() {
                                new NameConfiguration() { Name = "St étienne", Language =  Language.French },
                            } },

                            new PeriodConfiguration() { Name = "New Year's Eve", RuleDate = "12-31", Free = true, Translations = new List<NameConfiguration>() {
                                new NameConfiguration() { Name = "St sylvestre", Language =  Language.French },
                            } },

                        }
                    },

                    new RegionConfiguration()
                    {
                        Key  = "68",
                        From = "67",
                        Periods = new List<PeriodConfiguration>()
                        {

                        }
                    },
                    //new RegionConfiguration()
                    //{
                    //    ZipCodes = "973",   // Guyane
                    //    Periods = new List<PeriodConfiguration>()
                    //    {

                    //        new PeriodConfiguration() { Name = "", Rule = "?/?", Relative = 0, Free = true,
                    //            Translations = new List<NameConfiguration>() { new NameConfiguration() { Name = "Abolition de l'esclavage", Language =  Language.English } } },
                          
                    //    }
                    //},

                    //new RegionConfiguration()
                    //{
                    //    ZipCodes = "972",   // Martinique
                    //    Periods = new List<PeriodConfiguration>()
                    //    {

                    //        new PeriodConfiguration() { Name = "", Rule = "?/?", Relative = 0, Free = true,
                    //            Translations = new List<NameConfiguration>() { new NameConfiguration() { Name = "Abolition de l'esclavage", Language =  Language.English } } },

                    //    }
                    //},

                }

            };
            return country;
        }
Пример #10
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration(new CategoryConfiguration());
            modelBuilder.Entity <Category>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new WarehouseConfiguration());
            modelBuilder.Entity <Warehouse>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new SupplierConfiguration());
            modelBuilder.Entity <Supplier>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new BankAccountConfiguration());
            modelBuilder.Entity <BankAccount>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new BankAccountTypeConfiguration());
            modelBuilder.Entity <BankAccountType>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new UserConfiguration());
            modelBuilder.ApplyConfiguration(new CompanyConfiguration());

            modelBuilder.ApplyConfiguration(new UserClientConfiguration());
            modelBuilder.Entity <Client>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new PaymentTermConfiguration());
            modelBuilder.Entity <PaymentTerm>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new ProductConfiguration());
            modelBuilder.Entity <Product>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new TaxConfiguration());
            modelBuilder.Entity <Tax>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new UnitOfMeasureConfiguration());
            modelBuilder.Entity <UnitOfMeasure>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new TaxRegimeTypeConfiguration());
            modelBuilder.Entity <TaxRegimeType>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new DocumentNumberSequenceConfiguration());
            modelBuilder.Entity <DocumentNumberSequence>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new InvoiceHeaderConfiguration());
            modelBuilder.Entity <InvoiceHeader>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new InvoiceDetailConfiguration());
            modelBuilder.Entity <InvoiceDetail>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new PaymentMethodConfiguration());
            modelBuilder.Entity <PaymentMethod>()
            .HasQueryFilter(c => c.CompanyId == _companyId && c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new PurchaseOrderHeaderConfiguration());
            modelBuilder.Entity <PurchaseOrderHeader>().HasQueryFilter(c => c.CompanyId == _companyId &&
                                                                       c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new PurchaseOrderDetailConfiguration());
            modelBuilder.Entity <PurchaseOrderDetail>().HasQueryFilter(c => c.CompanyId == _companyId &&
                                                                       c.Status == EntityStatus.Active);

            modelBuilder.ApplyConfiguration(new CountryConfiguration());
            modelBuilder.Entity <Country>().HasData(CountryConfiguration.InitialCountryData());

            modelBuilder.ApplyConfiguration(new GoodsTypeConfiguration());
            modelBuilder.Entity <GoodsType>().HasData(GoodsTypeConfiguration.InitialGoodsTypeData());

            modelBuilder.ApplyConfiguration(new CurrencyConfiguration());
            modelBuilder.Entity <Currency>().HasData(CurrencyConfiguration.InitialCurrencyData());

            modelBuilder.ApplyConfiguration(new RoleConfiguration());
            base.OnModelCreating(modelBuilder);
        }