public async Task <bool> UpdateContactAsync(ViewContactLess model) { using (var transaction = _database.Database.BeginTransaction()) { try { var original = await _database.Contacts.FirstOrDefaultAsync(p => p.GuID == model.GuID); var replace = new Contact(); AutoMapper.Mapper.Map(model, replace); replace.ContactId = original.ContactId; replace.DateModified = DateTime.UtcNow; _database.Entry(original).CurrentValues.SetValues(replace); await _database.SaveChangesAsync(); transaction.Commit(); return(true); } catch { transaction.Rollback(); throw; } } }
public async Task <HttpResponseMessage> PostContactAsync([FromBody] ViewContactLess c) { if (ReferenceEquals(c, null) || !ModelState.IsValid) { return(Create400()); } if (await manager.AddContactAsync(c)) { return(Create201()); } return(Request.CreateResponse(HttpStatusCode.NotAcceptable)); }
public async Task <HttpResponseMessage> PutContactAsync([FromBody] ViewContactLess c) { if (ReferenceEquals(c, null) || !ModelState.IsValid) { return(Create502()); } if (await manager.UpdateContactAsync(c)) { return(Create202()); } return(Create400()); }
public async Task <bool> AddContactAsync(ViewContactLess model) { var contact = new Contact(); AutoMapper.Mapper.Map(model, contact); contact.GuID = Guid.NewGuid(); contact.DateInserted = DateTime.UtcNow; using (var transaction = _database.Database.BeginTransaction()) { try { _database.Contacts.Add(contact); await _database.SaveChangesAsync(); transaction.Commit(); return(true); } catch { transaction.Rollback(); throw; } } }
public async Task <List <ViewContactLess> > FilterOrderByRequestAsync(RequestContact request) { if (ReferenceEquals(request, null)) { return(null); } ViewContactLess filter = request.FilterBy; List <ViewContactLess> result = new List <ViewContactLess>(); try { if (filter.FullName != null) { result = await FilterSortAsync(request, FilterBy.Name); } if (filter.CompanyName != null) { result = await FilterSortAsync(request, FilterBy.Company); if (filter.FullName != null) { result = await FilterSortAsync(request, FilterBy.NameCompany); } } if (filter.Position != null) { result = await FilterSortAsync(request, FilterBy.Position); if (filter.FullName != null) { result = await FilterSortAsync(request, FilterBy.NamePosition); } if (filter.CompanyName != null) { result = await FilterSortAsync(request, FilterBy.CompanyPosition); } if (filter.FullName != null && filter.CompanyName != null) { result = await FilterSortAsync(request, FilterBy.NameCompanyPosition); } } if (filter.Country != null) { result = await FilterSortAsync(request, FilterBy.Country); if (filter.FullName != null) { result = await FilterSortAsync(request, FilterBy.NameCountry); } if (filter.Position != null) { result = await FilterSortAsync(request, FilterBy.CountryPosition); } if (filter.FullName != null && filter.Position != null) { result = await FilterSortAsync(request, FilterBy.NamePositionCountry); } } return(result); } catch (Exception ex) { throw new Exception(ex.Message); } }