public MunicipalityTax Create(string name, DateTime date, Period period, decimal tax)
        {
            var municipality = _municipalitiesRepository.GetAllItems().FirstOrDefault(a => a.Name == name);

            if (municipality == default(Municipality))
            {
                municipality = new Municipality
                {
                    Name = name
                };
            }

            var municipalityTax = new MunicipalityTax
            {
                TaxPeriod = new TaxPeriod
                {
                    DateFrom = date.Date,
                    DateTo   = date.AddPeriod(period),
                    Period   = period
                },
                Municipality = municipality,
                Tax          = tax
            };

            return(_taxesRepository.AddOrUpdate(municipalityTax));
        }
        public ActionResult FileUpload(HttpPostedFileBase uploadFile)
        {
            if (uploadFile != null && uploadFile.ContentLength > 0)
            {
                _logger.Info("Deserializing file object");
                var municipalitityList = FileReader.DeserializeXmlFileToObject <MunicipalitityList>(uploadFile.InputStream);
                foreach (var municipalitity in municipalitityList.Municipalities)
                {
                    _logger.Info($"Managing Municipalitity { municipalitity.Name }");
                    //check for unique
                    var existingItem = _repository.GetAllItems().FirstOrDefault(a => a.Name == municipalitity.Name);
                    if (existingItem != default(Municipality))
                    {
                        _logger.Info("Municipalitity already exists on database");
                        continue;
                    }

                    _logger.Info("Adding new Municipalitity");
                    _repository.AddOrUpdate(municipalitity);
                }
            }

            return(RedirectToAction("Index"));
        }