private async Task <bool> UpdateAsync() { _dataInput = Input; var valor = false; byte[] imageByte = null; var strategy = _context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _context.Database.BeginTransaction()) { try { var clientData = _customer.getTClient(Input.Nid); if (clientData.Count.Equals(0) || clientData[0].IdClient.Equals(_dataClient2.IdClient)) { if (Input.AvatarImage == null) { imageByte = _dataClient2.Image; } else { imageByte = await _uploadimage.ByteAvatarImageAsync(Input.AvatarImage, _environment, ""); } var client = new TClients { IdClient = _dataClient2.IdClient, Nid = Input.Nid, Name = Input.Name, LastName = Input.LastName, Email = Input.Email, Phone = Input.Phone, Credit = Input.Credit, Direccion = Input.Direction, Image = imageByte, }; _context.Update(client); _context.SaveChanges(); transaction.Commit(); valor = true; } else { _dataInput.ErrorMessage = $"El {Input.Nid} ya esta registrado"; valor = false; } } catch (Exception ex) { _dataInput.ErrorMessage = ex.Message; transaction.Rollback(); valor = false; } } }); return(valor); }
private async Task <bool> SaveAsync() { _dataInput = Input; var valor = false; if (ModelState.IsValid) { var clientList = _context.TClients.Where(u => u.Nid.Equals(Input.Nid)).ToList(); if (clientList.Count.Equals(0)) { var strategy = _context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _context.Database.BeginTransaction()) { try { var imageByte = await _uploadimage.ByteAvatarImageAsync( Input.AvatarImage, _environment, "images/images/default.png"); var client = new TClients { Name = Input.Name, LastName = Input.LastName, Nid = Input.Nid, Email = Input.Email, Image = imageByte, Phone = Input.Phone, Direccion = Input.Direction, Credit = Input.Credit, Date = DateTime.Now }; await _context.AddAsync(client); _context.SaveChanges(); var report = new TReports_clients { Debt = 0.0m, Monthly = 0.0m, Change = 0.0m, LastPayment = 0.0m, CurrentDebt = 0.0m, Ticket = "0000000000", TClients = client }; await _context.AddAsync(report); _context.SaveChanges(); transaction.Commit(); _dataInput = null; valor = true; } catch (Exception ex) { _dataInput.ErrorMessage = ex.Message; transaction.Rollback(); valor = false; } } }); } else { _dataInput.ErrorMessage = $"El {Input.Nid} ya esta registrado"; valor = false; } } else { foreach (var modelState in ModelState.Values) { foreach (var error in modelState.Errors) { _dataInput.ErrorMessage += error.ErrorMessage; } } valor = false; } return(valor); }