public static bool CheckIfTokenIsValid(H2MDbContext db, AuthObject auth) { var yesterday = DateTime.Now.AddDays(-1); var _token = db.Tokens.Where(token => token.UserId == auth.UserId && token.Token == auth.Token && token.ExpiryDate >= yesterday).FirstOrDefault(); return(_token == null); }
public List <HostpitalRequest> ApplyList(int hospitalID) { using (var db = new H2MDbContext()) { return(db.HostpitalRequest.Where(a => a.HospitalId == hospitalID).ToList()); } }
public dynamic Application(int RequestId) { using (var db = new H2MDbContext()) { return(db.HostpitalRequest.Where(a => a.Id == RequestId && a.Enabled).Select(a => new { a.Count, a.Htmlpost, HospitalName = a.Hospital.IdNavigation.Name, SpecialityName = a.Speciality.Name, email = a.Hospital.IdNavigation.Email, a.Hospital.IdNavigation.Latitude, a.Hospital.IdNavigation.Longitude }).FirstOrDefault()); } }
public List <Country> Countries() { using (var db = new H2MDbContext()) { return(db.Country.ToList()); } }
public dynamic CancelDoctorRequest(int requestId) { using (var db = new H2MDbContext()) { var employeeRequest = db.EmployeeRequest.Where(a => a.Id == requestId).FirstOrDefault(); if (employeeRequest == null) { return(new Response() { Code = (int)HttpStatusCode.NotFound, Data = "Invalid Request" }); } else { db.EmployeeRequest.Remove(employeeRequest); string msg = "Cancelled Successfully!"; db.SaveChanges(); return(new Response() { Code = (int)HttpStatusCode.OK, Data = new { msg } }); } } }
public static AuthObject CreateToken(H2MDbContext db, User user, string roleName) { var yesterday = DateTime.Now.AddDays(-1); var _token = db.Tokens.Where(token => token.UserId == user.Id && token.ExpiryDate >= yesterday).FirstOrDefault(); Tokens new_token = null; if (_token == null) { var exp = DateTime.Now.AddDays(30); new_token = new Tokens() { CreationDate = DateTime.Now, ExpiryDate = exp, Token = Guid.NewGuid().ToString(), RoleId = user.RoleId, UserId = user.Id }; db.Tokens.Add(new_token); db.SaveChanges(); } else { new_token = _token; } var authObj = new AuthObject() { Role = roleName, Token = new_token.Token, UserId = user.Id }; return(authObj); }
public object EmployeeRequests(int userId) { using (var db = new H2MDbContext()) { return(db.EmployeeRequest.Include(a => a.Request).Include(a => a.Request.Hospital.IdNavigation).Where(a => a.UserId == userId).Select(a => new { a.Request, a.Request.Hospital.IdNavigation.Name }).ToList()); } }
public dynamic specialities() { using (var db = new H2MDbContext()) { return(db.Speciality.Select(a => new { a.Name, a.Id }).ToList()); } }
public dynamic ApplicationHospital(int RequestId) { using (var db = new H2MDbContext()) { return(db.EmployeeRequest.Where(a => a.RequestId == RequestId && a.Status != 0)); } }
public List <City> Cities() { using (var db = new H2MDbContext()) { return(db.City.ToList()); } }
public Response Login([FromForm] string email, [FromForm] string password) { try { using (var db = new H2MDbContext()) { email = email.Trim(); var _user = db.User.Include(user => user.Role).Where(user => user.Email.Trim() == email && user.Password == password).FirstOrDefault(); if (_user == null) { return(new Response() { Code = (int)HttpStatusCode.Unauthorized, Data = "Incorrect email or password!" }); } AuthHelper.AuthObject authObj = AuthHelper.CreateToken(db, _user, _user.Role.Name); return(new Response() { Code = (int)HttpStatusCode.OK, Data = authObj }); } } catch (Exception ex) { return(InternalErrorObj); } }
public async Task <Response> GetHospital(int ID) { try { using (var db = new H2MDbContext()) { var hospitalInfo = db.User.Where(h => h.Id == ID).Select(a => new { a.Email, a.Name, City = a.City.Name, Country = a.Country.Name, Initls = a.City.Initals }).FirstOrDefault(); var requests = db.HostpitalRequest.Where(r => r.HospitalId == ID).Select(a => new { a.Id, a.Speciality, a.Enabled, a.Count }).ToList(); bool isPeak = await getPeak(hospitalInfo.Initls); List <int> ids = new List <int>(); List <int> leftPos = new List <int>(); foreach (var r in requests) { var requestLeft = db.EmployeeRequest.Where(a => a.RequestId == r.Id && a.Status == 1).ToList().Count; leftPos.Add(requestLeft); ids.Add(r.Id); } /* * 'id' => $request['id'], * 'userName' => $request['user']['name'], * 'status' => $request['status'], * 'time' => $new_date, * 'speciality' => $request['speciality']['name'] */ var newRequests = db.EmployeeRequest.Where(r => ids.Contains(r.RequestId)).Select(r => new { User = new { r.User.Name }, r.Status, r.Time, Speciality = new { r.Request.Speciality.Name }, r.Id, r.RequestId }).ToList(); newRequests.Reverse(); requests.Reverse(); //var newReuests = db.EmployeeRequest.Where(r => r.); return(new Response() { Code = (int)HttpStatusCode.OK, Data = new { hospitalInfo, requests, leftPos, newRequests, isPeak } }); } } catch (Exception ex) { return(new Response() { Code = (int)HttpStatusCode.InternalServerError, Data = ex.ToString() }); } }
public async Task <Response> GetRequestsSorted(double?lon, double?lat, int docID) { using (var db = new H2MDbContext()) { var specIDs = db.DoctorSpeciality.Where(doc => doc.DoctorId == docID).ToList(); List <int> specs = new List <int>(); foreach (DoctorSpeciality doc in specIDs) { specs.Add(doc.SpecialityId); } //var spec = db.Doctor.Include(u => u.DoctorSpeciality).Where(d => d.DoctorId); var employeeRequested = db.EmployeeRequest.Where(a => a.UserId == docID).Select(a => a.RequestId).ToList(); var _hospitals = db.HostpitalRequest.Include(h => h.Hospital).Include(a => a.Hospital.IdNavigation).Include(a => a.Hospital.IdNavigation.City).Include(a => a.Hospital.IdNavigation.Country).Include(h => h.Speciality).Where(a => a.Enabled).ToList(); //added where to only show enabled requests List <RequestViewModel> result = new List <RequestViewModel>(); User user = null; if (lon == null || lat == null) { user = db.User.Where(a => a.Id == docID).FirstOrDefault(); } foreach (HostpitalRequest h in _hospitals) { double distance = 0; if (lon != null && lat != null) { distance = GetDistance(h.Hospital.Latitude.Value, h.Hospital.Longitude.Value, (double)lat, (double)lon); } else { distance = user.CityId == h.Hospital.IdNavigation.CityId ? 11111 : 111111; } bool isPeak = await getPeak(h.Hospital.IdNavigation.City.Initals); result.Add(new RequestViewModel { Request = new { speciality = h.Speciality.Name, hospitalName = h.Hospital.IdNavigation.Name, count = h.Count, country = h.Hospital.IdNavigation.Country.Name, city = h.Hospital.IdNavigation.City.Name, hospitalAppId = h.Id, isApplied = employeeRequested.Contains(h.Id), isPeak }, Distance = distance }); } result.Sort((p, q) => p.Distance.CompareTo(q.Distance)); return(new Response() { Code = (int)HttpStatusCode.OK, Data = result }); } }
public dynamic Profile(int userId) { using (var db = new H2MDbContext()) { var userInfo = db.User.Where(a => a.Id == userId).Select(a => new { a.Name, a.City, a.Country, a.Email, a.Id }).FirstOrDefault(); var specialtiesList = db.DoctorSpeciality.Where(a => a.DoctorId == userId).Select(a => a.Speciality.Name).ToList(); var requests = db.EmployeeRequest.Where(a => a.UserId == userInfo.Id).Select(a => new { a.Status, a.Request.Hospital.IdNavigation.Name, a.Time, a.Id }).ToList(); requests.Reverse(); return(new { userInfo, specialtiesList, requests }); } }
public async Task <Response> CheckPeak(int HospitalID) { try { bool isPeak = false; using (var db = new H2MDbContext()) { var hospital = db.User.Include(c => c.City).Where(h => h.Id == HospitalID).FirstOrDefault(); var init = hospital.City.Initals; //var result = await getData("MA"); var result = await getData(init); var data = JsonConvert.DeserializeObject <List <Dictionary <String, dynamic> > >(result); //double percent = 0; double sum = 0; List <double> nums = new List <double>(); nums.Add(0); for (int i = data.Count - 1; i >= Math.Max(data.Count - 14, 0); i--) { sum += data[i]["positive"] - data[i - 1]["positive"]; nums.Add(data[i]["positive"] - data[i - 1]["positive"]); } sum /= Math.Min(data.Count, 14); var lastDay = data[data.Count - 1]["positive"] - data[data.Count - 2]["positive"]; if (lastDay >= (sum - sum * 0.1)) { isPeak = true; } sum = (sum - sum * 0.1); return(new Response() { Code = (int)HttpStatusCode.OK, Data = new { isPeak, sum, init, lastDay, nums } }); } } catch (Exception ex) { throw new Exception("Server Error " + ex.ToString()); } }
public Response NewDemand([FromForm] int HospitalId, [FromForm] int count, [FromForm] string htmlPost, [FromForm] int SpecialityId) { using (var db = new H2MDbContext()) { var request = new HostpitalRequest { Count = count, Htmlpost = htmlPost, HospitalId = HospitalId, SpecialityId = SpecialityId, Enabled = true }; db.HostpitalRequest.Add(request); db.SaveChanges(); return(new Response() { Code = (int)HttpStatusCode.OK, Data = "Demand added successfully!" }); } }
public Response Apply(int EmployeeId, int RequestId) { try { using (var db = new H2MDbContext()) { var HasApplied = db.EmployeeRequest.Where(a => a.UserId == EmployeeId && a.RequestId == RequestId).FirstOrDefault() != null; if (HasApplied) { return(new Response() { Code = (int)HttpStatusCode.AlreadyReported, Data = "You've applied before!" }); } else { EmployeeRequest er = new EmployeeRequest() { UserId = EmployeeId, Time = DateTime.Now, RequestId = RequestId, Status = 0 };//0-> pending 1-> accepted -1-> rejected db.EmployeeRequest.Add(er); db.SaveChanges(); } } return(new Response() { Code = (int)HttpStatusCode.OK, Data = "Applied Successfully" }); } catch (Exception ex) { return(new Response() { Code = (int)HttpStatusCode.InternalServerError, Data = "Something wrong happend. Can you please try agian?" }); } }
public dynamic ApproveRejectApplications(int EmployeeRequestId, bool AcceptOrDecline) { using (var db = new H2MDbContext()) { var employeeRequest = db.EmployeeRequest.Include(a => a.Request).Include(a => a.User).Where(a => a.Id == EmployeeRequestId).FirstOrDefault(); if (employeeRequest == null) { return(new Response() { Code = (int)HttpStatusCode.NotFound, Data = "Invalid Request" }); } else { var msg = ""; var userInfo = db.User.Where(a => a.Id == employeeRequest.UserId).FirstOrDefault(); var request = db.HostpitalRequest.Where(a => a.Id == employeeRequest.RequestId).FirstOrDefault(); if (AcceptOrDecline) { employeeRequest.Status = 1; msg = userInfo.Name + " accepted Successfully!"; } else { employeeRequest.Status = -1; msg = userInfo.Name + " has been rejected."; } db.SaveChanges(); return(new Response() { Code = (int)HttpStatusCode.OK, Data = new { userInfo.Name, userInfo.Email, msg } }); } } }
public UsersController(H2MDbContext context) { _context = context; }
public Response Signup([FromForm] string Email, [FromForm] string Password, [FromForm] string Gender, [FromForm] string Name, [FromForm] double?Longitude, [FromForm] double?Latitude, [FromForm] int?CountryId, [FromForm] int?CityId, [FromForm] int?RoleId, [FromForm] string SpecialitiesJson) { try { using (var db = new H2MDbContext()) { var roleId = (RoleId ?? 0); var newUser = new User() { Email = Email.Trim(), Password = Password, RoleId = roleId, DateCreated = DateTime.Now, Gender = Gender, Name = Name.Trim(), CountryId = CountryId ?? -1, CityId = CityId ?? -1, Longitude = Longitude, Latitude = Latitude }; db.SaveChanges(); var authObject = AuthHelper.CreateToken(db, newUser, newUser.Role.Name); List <Speciality> specs = null; if (!string.IsNullOrWhiteSpace(SpecialitiesJson)) { specs = JsonConvert.DeserializeObject <List <Speciality> >(SpecialitiesJson); } if (roleId == 1) { var _hospital = new Hospital() { Id = newUser.Id, Latitude = Latitude, Longitude = Longitude }; db.Hospital.Add(_hospital); db.SaveChanges(); } else if (roleId == 2) { var _doctor = new Doctor() { DoctorId = newUser.Id.ToString() }; specs.ForEach(s => _doctor.DoctorSpeciality.Add(new DoctorSpeciality() { Speciality = s, DoctorId = newUser.Id })); db.Doctor.Add(_doctor); db.SaveChanges(); } else if (roleId == 3) { var _nurse = new Nurse() { NurseId = newUser.Id.ToString() }; specs.ForEach(s => _nurse.NurseSpeciality.Add(new NurseSpeciality() { Speciality = s, NurseId = newUser.Id })); db.Nurse.Add(_nurse); db.SaveChanges(); } else { InternalErrorObj.Data = "Invalid Job"; return(InternalErrorObj); } return(new Response() { Code = (int)HttpStatusCode.OK, Data = authObject }); } } catch (Exception ex) { return(InternalErrorObj); } }