You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RequestService.cs 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Diligent.WebAPI.Business.HelperModels;
  2. using Diligent.WebAPI.Business.MongoServices;
  3. using Diligent.WebAPI.Data;
  4. using Diligent.WebAPI.Data.Entities;
  5. using Microsoft.Extensions.Options;
  6. using MongoDB.Driver;
  7. namespace Diligent.WebAPI.Business.Services
  8. {
  9. public class RequestService : BaseMongo<Request>
  10. {
  11. public RequestService(IOptions<WebApiDatabaseSettings> webApiDatabaseSettings) :
  12. base(webApiDatabaseSettings, "Request")
  13. { }
  14. public async Task<List<Request>> GetRequestsAsync() =>
  15. await _mongoCollection.Find(_ => true).ToListAsync();
  16. public async Task<Request> GetRequestAsync(string id) =>
  17. await _mongoCollection.Find(x => x.Id == id).FirstOrDefaultAsync();
  18. public async Task CreateRequestAsync(Request req) =>
  19. await _mongoCollection.InsertOneAsync(req);
  20. public async Task<DeleteCustomerRequest> RemoveRequestAsync(string customerId,string roomId)
  21. {
  22. var request = await _mongoCollection.Find(x => x.SenderId == customerId && x.RoomId == roomId).FirstOrDefaultAsync();
  23. if (request == null)
  24. return new DeleteCustomerRequest { IsSuccess = false };
  25. var id = request.Id;
  26. _mongoCollection.DeleteOne(x => x.Id == request.Id);
  27. return new DeleteCustomerRequest { Id = id, IsSuccess = true };
  28. }
  29. }
  30. }