public async void TrackingAgant(TrackViewModel model) { try { // ErrorSaver.SaveError("Track Agent -" + model.UserId + model.RequestId); // TrackViewModel model+ // this method will send Longitude, Latitude to the other user await UpdateRequest(model); // ErrorSaver.SaveError("After Update Request -" + model.UserId + model.RequestId); Clients.Group(model.UserId + model.RequestId).agantMove(model); // ErrorSaver.SaveError(UserHandler.ConnectedIds.Count.ToString()); // ErrorSaver.SaveError("After Group Agent Move -" + model.UserId + model.RequestId); Clients.All.agantMove(model); // ErrorSaver.SaveError("After Clients All Agent Move -" + model.UserId + model.RequestId); } catch (Exception e) { ErrorSaver.SaveError("exeption thrown - " + e.Message); } }
public async Task <IHttpActionResult> ReSendConfirmationCode(string id) { try { if (string.IsNullOrWhiteSpace(id)) { return(BadRequest("User Id Not Send")); } var user = await _repo.FindUserByUserName(id); if (user == null) { return(BadRequest("هذا المستخدم غير موجود.")); } string smsUrl = Settings.Default.SmsUrl; if (user.PhoneNumberConfirmed) { return(Ok("تم التفعيل من قبل.")); } await _repo.ReSendSmsConfirmation(smsUrl, user); return(Ok("تم ارسال كود التفعيل بنجاح.")); } catch (Exception ex) { var msg = ex.Message; ErrorSaver.SaveError(msg); return(BadRequest("ReSendConfirmationCode " + msg)); } }
public async Task <IHttpActionResult> ResetPassword(ResetPasswordViewModel resetPasswordView) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _repo.FindUserbyPhone(resetPasswordView.Phone); if (user == null) { ModelState.AddModelError("", "Not Found"); return(BadRequest(ModelState)); } var result = await _repo.ResetPassword(user.Id, resetPasswordView.Code, resetPasswordView.Password); var errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } return(Ok()); } catch (Exception ex) { var msg = ex.Message; ErrorSaver.SaveError(msg); return(BadRequest("ResetPassword --- " + msg)); } }
public async Task <IHttpActionResult> ChangePhone(PhoneViewModel phone) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = GetUserId(); var user = await GetApplicationUserById(userId); var result = await _repo.ChangePhone(user : user, phone : phone.Phone, code : phone.Code); if (result) { return(Ok()); } else { ModelState.AddModelError("Invalid token", "Invalid token"); return(BadRequest(ModelState)); } } catch (Exception ex) { ErrorSaver.SaveError(ex.Message); return(BadRequest("ChangeStatus --- " + ex.Message)); } }
public async Task <IHttpActionResult> ForgetPassword(ForgotPasswordViewModel forgotPasswordViewModel) { try { if (!ModelState.IsValid || forgotPasswordViewModel == null) { return(BadRequest(ModelState)); } var user = await _repo.FindUserbyPhone(forgotPasswordViewModel.Phone); if (user == null) { ModelState.AddModelError("", "Not Found"); return(BadRequest(ModelState)); } string smsUrl = Settings.Default.SmsUrl.ToString(); await _repo.ForgetPasswordbyPhone(smsUrl, forgotPasswordViewModel.Phone); return(Ok()); } catch (Exception ex) { var msg = ex.Message; ErrorSaver.SaveError(msg); return(BadRequest("ForgetPassword --- " + msg)); } }
public async Task <IHttpActionResult> ConfirmEmail(ConfirmViewModel confirmViewModel) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _repo.ConfirmEmail(confirmViewModel.UserId, confirmViewModel.Code); if (result) { return(Ok()); } else { ModelState.AddModelError("", "Invalid token"); return(BadRequest(ModelState)); } } catch (Exception ex) { var msg = ex.Message; ErrorSaver.SaveError(msg); return(BadRequest("ConfirmEmail --- " + msg)); } }
public async Task <IHttpActionResult> TrackAgent(TrackViewModel model) { var request = _UnitOfWork.RequestRepository.GetbyId(model.RequestId); var key = ConfigurationManager.AppSettings["googleapis-map-key"]; var res = _UnitOfWork.CityRepository.GetDifference(key, model.Latitude, model.Longitude, request.ToLatitude, request.ToLongtitude); var result = System.Web.Helpers.Json.Decode(res); ErrorSaver.SaveError($"Log Model before {key}, {model.Latitude}, {model.Longitude}, {request.ToLatitude},{request.ToLongtitude}"); decimal disanceinKilometers = result.rows[0] != null && result.rows[0].elements[0] != null && result.rows[0].elements[0].distance != null && result.rows[0].elements[0].distance.value != null ? result.rows[0].elements[0].distance.value : 0; model.Distance = disanceinKilometers; ErrorSaver.SaveError($"Distance before {disanceinKilometers}"); if (model.Distance <= 100) { request.Status = RequestStatusEnum.Delivered; _UnitOfWork.RequestRepository.Updated(request); await _UnitOfWork.CommitAsync(); ErrorSaver.SaveError($"Distance Less than 100 {disanceinKilometers}"); } _notificationHub.MoveAgant(model); return(Ok(model)); }
public async Task <ActionResult> Cancel(RefuseRequestViewModel search) { try { if (!ModelState.IsValid) { Request old = _UnitOfWork.RequestRepository.GetbyId(search.Id); if (old == null) { return(HttpNotFound()); } ViewBag.Request = old; PopulateRefuseResons(); return(View("Cancel", search)); } var request = _UnitOfWork.RequestRepository.Find(search.Id); if (request == null) { return(new HttpStatusCodeResult(404, "NotFound")); } if (request.Status != RequestStatusEnum.Inprogress) { return(RedirectToAction("InProgress", "Requests").Error("لا يمكنك الغاء هذا الطلب .")); } request.Status = RequestStatusEnum.Canceled; _UnitOfWork.RefuseRequestsRepository.Create(new RefuseRequest() { RequestId = request.Id, UserId = request.UserId, AgentId = request.AgentId, RefuseReasonId = search.RefuseReasonId, Cause = search.Cause }); _UnitOfWork.Commit(); var value = _UnitOfWork.RefuseReasonsRepository.All().FirstOrDefault(u => u.Id == search.RefuseReasonId); if (value != null) { await SendNotification(request, NotificationType.RequestCancele.GetHashCode(), "", value.Value.ToString()); } else { await SendNotification(request, NotificationType.RequestCancele.GetHashCode(), "", ""); } var message = string.Format("تم الغاء الطلب بنجاح ."); return(RedirectToAction("InProgress", "Requests").Success(message)); } catch (Exception e) { ErrorSaver.SaveError(e.Message); return(new HttpStatusCodeResult(404, "NotFound")); } }
public async void JoinToSpecificGroup(string group) { ErrorSaver.SaveError("Join To group -" + group); //logic creating group //userid1++"chat"idchat+userid2 // Clients.Group(groupid); // Groups.Add(group, Context.ConnectionId); await Groups.Add(Context.ConnectionId, group); //Clients.All.agantMove("daDDDDDDDDDDDDDDDS"); }
public async Task <IHttpActionResult> GetRequestDetails(EditRequestViewModel model) { try { var request = await _UnitOfWork.RequestRepository.GetRequestDetails(model.Id); if (request == null) { return(BadRequest($"Request's User Is Removed")); } return(Ok(request)); } catch (Exception ex) { ErrorSaver.SaveError(ex.Message); return(BadRequest(ex.Message)); } }
public async Task <ActionResult> ApproveUser(string id) { try { var oldUser = await _repo.FindUserById(id); if (oldUser != null) { var result = await _repo.UpdatePhoneNumberConfirmed(oldUser, true); if (result.Succeeded) { var setting = _UnitOfWork .EmailSetting .GetEmailSetting(EmailType.ActivateAgent.GetHashCode().ToString()); EmailManager.SendWelcomeEmail(EmailType.ActivateAgent.GetHashCode().ToString(), oldUser.Email, setting.MessageBodyAr.Replace("@FullName", oldUser.FullName)); return(Json("OK", JsonRequestBehavior.AllowGet)); } else { return(Json("NotFound", JsonRequestBehavior.AllowGet)); } } //return RedirectToAction("AgentsRequest").Error("هذا المندوب غير موجود ."); return(Json("NotFound", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorSaver.SaveError(ex.Message); return(Json("Error", JsonRequestBehavior.AllowGet)); // return RedirectToAction("AgentsRequest").Error("حدث خطأ أثناء قبول المندوب."); } }
public async Task <IHttpActionResult> RegisterUser(UserViewModel viewModel) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string smsUrl = Settings.Default.SmsUrl.ToString(); var result = await _repo.RegisterUser(smsUrl, viewModel.FullName, viewModel.PhoneNumber, viewModel.Email, viewModel.UserName, viewModel.Password ); var errorResult = GetErrorResult(result); if (errorResult != null) { return(errorResult); } var u = await _repo.FindUser(viewModel.UserName, viewModel.Password); //if(u!=null && !string.IsNullOrEmpty(u.Id)) // SendSms(viewModel.UserName,) return(Ok(u.Id)); } catch (Exception ex) { var msg = ex.Message; ErrorSaver.SaveError(ex.Message); return(BadRequest("Register " + msg)); } }
public async Task <IHttpActionResult> AddPhone(string secondNumber) { try { var userId = GetUserId(); var user = await GetApplicationUserById(userId); await _repo.AddPhone(user, secondNumber); string smsUrl = Settings.Default.SmsUrl.ToString(); var sent = await _repo.SendSmsConfirmation(smsUrl, user); return(Ok()); } catch (Exception ex) { ErrorSaver.SaveError(ex.Message); return(BadRequest("ChangeStatus --- " + ex.Message)); } }
public async Task <IHttpActionResult> GetUserInfo(DeviceSettingModel model) { try { var userName = User.Identity.GetUserName(); var user = await GetApplicationUser(userName); if (user == null) { return(NotFound()); } var roles = await _repo.GetUserRoles(user.Id); var agentStatisticsModel = new AgentStatisticsModel(); if (roles.FirstOrDefault() == RolesEnum.Agent.ToString()) { agentStatisticsModel = await GetUserStatistic(user.Id); } model.ApplicationUserId = user.Id; var device = _UnitOfWork.DeviceSettingRepository.All() .Any(u => u.ApplicationUserId == model.ApplicationUserId && u.DeviceId == model.DeviceId); if (!device) { var deviceModel = Mapper.Map <DeviceSettingModel, DeviceSetting>(model); _UnitOfWork.DeviceSettingRepository.Create(deviceModel); _UnitOfWork.Commit(); } return(Ok(new UserEditViewmodel { Id = user.Id, UserName = user.UserName, FullName = user.FullName, Email = user.Email, PhoneNumber = user.PhoneNumber, Type = (int?)user.Type, CityId = user.CityId, PhotoUrl = user.PhotoUrl, Address = user.Address, CompanyName = user.Car != null ? user.Car.CompanyName : string.Empty, CarType = user.Car != null ? user.Car.Type : string.Empty, Model = user.Car != null ? user.Car.Model : string.Empty, Color = user.Car != null ? user.Car.Color : string.Empty, PlateNumber = user.Car != null ? user.Car.PlateNumber : string.Empty, PassengerNumberId = user.Car?.PassengerNumberId, IsSuspend = user.IsSuspend, IsNotified = user.IsNotified, Role = roles != null ? roles.First() : string.Empty, AgentStatisticsModel = agentStatisticsModel })); } catch (Exception e) { ErrorSaver.SaveError(e.Message); return(BadRequest(e.Message)); } }
public async Task <ActionResult> ApproveAgent(string id) { try { var oldUser = await _repo.FindUserById(id); if (oldUser != null) { var result = await _repo.UpdatePhoneNumberConfirmed(oldUser, true); if (result.Succeeded) { var setting = _UnitOfWork .EmailSetting .GetEmailSetting(EmailType.ActivateAgent.GetHashCode().ToString()); EmailManager.SendWelcomeEmail(EmailType.ActivateAgent.GetHashCode().ToString(), oldUser.Email, setting.MessageBodyAr.Replace("@FullName", oldUser.FullName)); return(Json("OK", JsonRequestBehavior.AllowGet)); } else { return(Json("NotFound", JsonRequestBehavior.AllowGet)); } //await _repo.GenerateToken(id, EmailType.EmailConfirmation); //var setting = // _UnitOfWork.EmailSetting.GetEmailSetting(EmailType.EmailConfirmation.GetHashCode().ToString()); //EmailManager EmailManager = new EmailManager(); // string smsUrl = Settings.Default.SmsUrl.ToString(); ////var sent = await _repo.SendSmsConfirmation(smsUrl, oldUser); ////if (!sent) ////{ //// return Json("MessageNotSent", JsonRequestBehavior.AllowGet); ////} // var result = await _UnitOfWork.CommitAsync(); //return RedirectToAction("AgentsRequest").Success("تم قبول المندوب بنجاح."); } //return RedirectToAction("AgentsRequest").Error("هذا المندوب غير موجود ."); return(Json("NotFound", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorSaver.SaveError(ex.Message); return(Json("Error", JsonRequestBehavior.AllowGet)); // return RedirectToAction("AgentsRequest").Error("حدث خطأ أثناء قبول المندوب."); } }