public void Update(Models.Tax tax) { using var context = Context(); if (context.Tax.Any(u => u.Name == tax.Name && u.OrganisationId == tax.OrganisationId && u.Id != tax.Id)) { throw new Exception("Tax name already exist"); } foreach (var component in tax.Components) { if (context.TaxComponent.Any(u => u.Name == component.Name && u.Tax.OrganisationId == tax.OrganisationId && u.Id != component.Id)) { throw new Exception($"Component name {component.Name} already exist"); } } var updateTax = context.Tax.FirstOrDefault(u => u.Id == tax.Id && u.OrganisationId == tax.OrganisationId); if (updateTax == null) { throw new Exception("No tax to update"); } updateTax.Name = tax.Name; foreach (var component in updateTax.TaxComponent.ToList()) { var c = tax.Components.FirstOrDefault(u => u.Id == component.Id); component.Name = c.Name; } context.SaveChanges(); }
public void Create(Models.Tax tax) { using var context = Context(); if (tax.Components == null || !tax.Components.Any() || tax.Components.Any(t => string.IsNullOrEmpty(t.Name)) || tax.Components.Any(t => t.Rate < 0)) { throw new Exception("Invalid data to create"); } if (context.Tax.Any(u => u.Name == tax.Name && u.OrganisationId == tax.OrganisationId)) { throw new Exception("Tax name already exist"); } foreach (var component in tax.Components) { if (context.TaxComponent.Any(u => u.Name == component.Name && u.Tax.OrganisationId == tax.OrganisationId)) { throw new Exception($"Component name {component.Name} already exist"); } } context.Tax.Add(new Dal.Models.Tax { Name = tax.Name, OrganisationId = tax.OrganisationId, TaxComponent = tax.Components.Select(u => new Dal.Models.TaxComponent { Name = u.Name, Rate = u.Rate, }).ToHashSet() }); context.SaveChanges(); }
public Models.Tax ParseToTax() { Models.Tax tax = new Models.Tax { Id = Guid.NewGuid().ToString(), Code = this.Code, Name = this.Name, OrganizationId = this.OrganizationId, Type = this.Type, Value = this.Value }; return(tax); }
public async Task <ActionResult <Tax> > SaveTax([FromBody] TaxDTO _TaxP) { Tax _Tax = _TaxP; try { // DTO_NumeracionSAR _liNumeracionSAR = new DTO_NumeracionSAR(); string baseadress = config.Value.urlbase; HttpClient _client = new HttpClient(); _client.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token")); var result = await _client.GetAsync(baseadress + "api/Tax/GetTaxById/" + _Tax.TaxId); string valorrespuesta = ""; _Tax.FechaModificacion = DateTime.Now; _Tax.UsuarioModificacion = HttpContext.Session.GetString("user"); if (result.IsSuccessStatusCode) { valorrespuesta = await(result.Content.ReadAsStringAsync()); _Tax = JsonConvert.DeserializeObject <TaxDTO>(valorrespuesta); } if (_Tax == null) { _Tax = new Models.Tax(); } if (_TaxP.TaxId == 0) { _Tax.FechaCreacion = DateTime.Now; _Tax.UsuarioCreacion = HttpContext.Session.GetString("user"); var insertresult = await Insert(_TaxP); } else { _TaxP.UsuarioCreacion = _Tax.UsuarioCreacion; _TaxP.FechaCreacion = _Tax.FechaCreacion; var updateresult = await Update(_Tax.TaxId, _TaxP); } } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); throw ex; } return(Json(_Tax)); }