public async Task <BaseResult <List <DisplayTicketModel> > > GetTicketsByUserId(string userId) { BaseResult <List <DisplayTicketModel> > result = new BaseResult <List <DisplayTicketModel> >(); if (!String.IsNullOrWhiteSpace(userId)) { //Get Tickets by userId var ticketCollection = _database.GetCollection <TicketDataModel>("cTickets"); var filter = Builders <TicketDataModel> .Filter.Eq("UserId", userId); var tickets = await ticketCollection.Find(filter).ToListAsync(); if (tickets != null && tickets.Count > 0) { List <DisplayTicketModel> model = Convert(tickets); result.Suceeded = true; result.Value = model; } else { result.Suceeded = true; result.AddError("User don't have any tickets"); } } else { result.Suceeded = false; result.SetRequiredFieldsMissing("userId"); } return(result); }
public async Task <BaseResult <DisplayPlatformTicketModel> > BookPlatformTicket(string userId, PlatformTicketModel model) { BaseResult <DisplayPlatformTicketModel> result = new BaseResult <DisplayPlatformTicketModel>(); if (model != null && !String.IsNullOrWhiteSpace(userId)) { try { //Get user var user = await _userRepository.GetUser(userId); if (user != null) { PlatformTicketDataModel dataModel = new PlatformTicketDataModel(); dataModel.InjectFrom(model); dataModel.TicketStatus = TicketStatus.Booked; dataModel.Id = Guid.NewGuid().ToString(); dataModel.UserId = user.Id; //Insert data to mongo var platformTicketCollection = _database.GetCollection <PlatformTicketDataModel>("cPTickets"); await platformTicketCollection.InsertOneAsync(dataModel); var filter = Builders <PlatformTicketDataModel> .Filter.Eq("Id", dataModel.Id); var bookedTicket = await platformTicketCollection.Find(filter).ToListAsync(); DisplayPlatformTicketModel displaymodel = null; if (bookedTicket != null && bookedTicket.Count == 1) { displaymodel = Convert(bookedTicket.FirstOrDefault()); } result.Suceeded = true; result.Value = displaymodel; } else { result.Suceeded = false; result.AddError("User is unauthenticated."); } } catch (Exception) { result.Suceeded = false; result.AddError("Error while booking platformticket, please try after some time."); } } else { result.Suceeded = false; result.SetRequiredFieldsMissing("Fields missing"); } return(result); }
public async Task <BaseResult <StringIdResult> > GetUser(LoginModel model) { var result = new BaseResult <StringIdResult>(); if (model != null) { var valResult = _userLoginValidator.Validate(model); if (valResult.IsValid) { try { var userCollection = _database.GetCollection <RegisterModel>("cUsers"); var builder = Builders <RegisterModel> .Filter; var filter = builder.Eq("PhoneNumber", model.PhoneNumber) & builder.Eq("Password", model.Password); var users = await userCollection.Find(filter).ToListAsync(); if (users.Count > 0) { StringIdResult r = new StringIdResult(); r.Id = users[0].Id; result.Value = r; result.Suceeded = true; } else { result.Suceeded = false; result.AddError("Wrong phoneNumber or password."); } } catch (Exception) { result.Suceeded = false; result.AddError("An error occured while registering user."); } } else { result.Suceeded = false; result.Errors.AddRange(valResult.Errors.ToErrorStringList()); } } else { result.SetRequiredFieldsMissing("PhoneNumber", "Password"); result.Suceeded = false; } return(result); }
public async Task <BaseResult <StringIdResult> > CancelTicket(string userId, string ticketId) { BaseResult <StringIdResult> result = new BaseResult <StringIdResult>(); try { if (!String.IsNullOrWhiteSpace(userId) && !String.IsNullOrWhiteSpace(userId)) { //Get User var user = await _userRepository.GetUser(userId); if (user != null) { //Get Ticket by Id var ticketCollection = _database.GetCollection <TicketDataModel>("cTickets"); var filter = Builders <TicketDataModel> .Filter.Eq("Id", ticketId); var update = Builders <TicketDataModel> .Update.Set("TicketStatus", TicketStatus.Canceled); var ticket = await ticketCollection.UpdateOneAsync(filter, update); if (ticket.ModifiedCount == 1) { StringIdResult idResult = new StringIdResult(); idResult.Id = ticketId; result.Suceeded = true; result.Value = idResult; } else { } } else { result.Suceeded = false; result.AddError("user is unauthenticated"); } } else { result.Suceeded = false; result.SetRequiredFieldsMissing("Fields missing"); } } catch (Exception) { result.Suceeded = false; result.AddError("Error while cancelling ticket, please try after some time."); } return(result); }