public async Task <Response <Visit> > AddVisit(AddVisitContract contract) { try { var visit = new Visit { Active = true, DateTime = DateTime.Now, Content = contract.Content, DoctorId = contract.DoctorId, MedicalRepId = contract.MedicalRepId, Type = contract.Typ }; await _repo.AddVisitAsync(visit); await _medicalRepHandler.HandleAddingVisitAsync(visit); await _unitWork.CommitAsync(); return(new Response <Visit>(visit)); } catch (Exception e) { return(new Response <Visit>($"Can not Add the visit: {e.Message}")); } }
public async Task <Response <EventNotification> > GetEvent(int dataId, int typeId) { try { var ev = await _repo.GetEvent(dataId, typeId); if (ev == null) { return(new Response <EventNotification>("Not found")); } var readHandler = new ReadingHandler <EventNotificationPrimaryKey>(); var arr = new List <IReadable <EventNotificationPrimaryKey> > { new EventRead(ev) }; readHandler.SetObj(arr); var readEvent = readHandler.ReadAll(); await _unitWork.CommitAsync(); if (readEvent.Count > 0) { ev.Read = false; } return(new Response <EventNotification>(ev)); } catch (Exception e) { return(new Response <EventNotification>($"ERROR :{e.Message}")); } }
public async Task <Response <Competition> > AddNextCompetition(Competition competition) { try { var last = await _repo.GetLastCompetition(competition.Type); var now = _offSetHandler.GetDate(); var d1 = new DateTime(now.Year, now.Month, now.Day).AddDays(1); //for daily comparison var d2 = new DateTime(now.Year, now.Month, 1).AddDays(1); //for monthly comparision if (last != null && (!competition.Type && d1 <= last.DateTime.Date || competition.Type && d2 <= last.DateTime.Date)) { return(new Response <Competition>("the Competition already exists ! ")); } competition.DateTime = competition.Type ? d2 : d1; await _repo.AddCompetition(competition); await _unitWork.CommitAsync(); return(new Response <Competition>(competition)); } catch (Exception e) { return(new Response <Competition>($"Error :{e.Message}")); } }
public async Task <RegisterServiceResult> AddRepAsync(AddMedicalRepResourcesRequest request) { try { var rep = _mapper.Map <AddMedicalRepResourcesRequest, MedicalRep>(request); if (request.Image != null && request.Image.Length > 0) { rep.ProfileUrl = await UploadAsync(request.Image); } await _repo.AddUser(rep); var identity = new IdentityUser { Email = request.Email, PhoneNumber = request.Phone, UserName = rep.GenerateUserName() }; var result = await _identityUser.RegisterAsync(identity, request.Password, rep); rep.IdentityUser = identity; await _unitWork.CommitAsync(); return(result); } catch (Exception e) { return(new RegisterServiceResult($"Can not Register :{e.InnerException}")); } }
public async Task <Response <Evaluation> > OppositeEvaluationAsync(int userId, int visitId) { try { var evaluation = await _repo.GetAnEvaluationWithItsVisitAsync(visitId, userId); if (evaluation == null) { return(new Response <Evaluation>("evaluation is not found to Modify!")); } if (!_visitAssertion.AssertActivation(evaluation.Visit)) { return(new Response <Evaluation>("Visit is not Active Or Deleted !")); } await _repo.OppositeEvaluationAsync(userId : userId, visitId : visitId); await _medicalRepHandlers.HandleEvaluationWithMedicalRepAsync(evaluation, evaluation.Visit, Interacting.Modify); await _unitWork.CommitAsync(); //handle Notification var not = await GetEvent(evaluation.Id, (int)NotificationTypesEnum.Evaluation); if (!not.Success) { return(new Response <Evaluation>("Event is opposited successfully,but Notification is not !")); } var opposite = new EvaluationOpposite(not.Source); opposite.Opposite(); //end of handling Notification await _unitWork.CommitAsync(); return(new Response <Evaluation>(evaluation)); } catch (Exception e) { return(new Response <Evaluation>($"Error:Can not Change Evaluation :{e.Message}")); } }
public async Task <Response <VisitReport> > AddReport(VisitReport visitReport) { try { var associatedVisit = await _interacting.GetVisitWithItsReportsAsync(visitReport.VisitId); if (!associatedVisit.Success) { return(new Response <VisitReport>(associatedVisit.Error)); } if (associatedVisit.Source == null) { return(new Response <VisitReport>("Visit Is not found!")); } if (!_assertion.AssertActivation(associatedVisit.Source)) { return(new Response <VisitReport>("You try to report to deleted or Un Active Comment !")); } if (associatedVisit.Source.VisitReports.Any(report => report.ReporterId == visitReport.ReporterId)) { return(new Response <VisitReport>("User already has made a Report to this visit!")); } if (associatedVisit.Source.Type) { return(new Response <VisitReport>("Report Can only applied for the Optional Visits !")); } associatedVisit.Source.VisitReports.Add(visitReport); _visitsHandlers.HandleReportingVisit(associatedVisit.Source, associatedVisit.Source.VisitReports); await _reportHandlers.HandleReporting(associatedVisit.Source, associatedVisit.Source.VisitReports); await _unitWork.CommitAsync(); return(new Response <VisitReport>(visitReport)); } catch (Exception e) { return(new Response <VisitReport>($"Error:{e.Message}")); } }