public string SubmitChat(int userId, string mobile, string comment) { using (var dataModel = new MibarimEntities()) { var validation = dataModel.Contacts.Where(x => (x.ContactDriverUserId == 1 && x.ContactPassengerUserId == userId) && !x.ContactIsDeleted).ToList(); if (validation.Count > 0) { var contact = validation.FirstOrDefault(); var commentModel = new Chat(); commentModel.ContactId = contact.ContactId; commentModel.ChatCreateTime = DateTime.Now; commentModel.ChatIsDeleted = false; commentModel.ChatUserId = 1; commentModel.IsChatSeen = false; commentModel.ChatTxt = comment; dataModel.Chats.Add(commentModel); dataModel.SaveChanges(); var otherUsers = validation.FirstOrDefault(); otherUsers.ContactLastMsg = Truncate(comment, 28); otherUsers.ContactLastMsgTime = DateTime.Now; var user = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == userId); NotifModel notifModel = new NotifModel(); notifModel.Title = user.Name + " " + user.Family; notifModel.Body = Truncate(comment, 28); notifModel.Tab = (int)MainTabs.Message; notifModel.RequestCode = (int)NotificationType.NewMessage; notifModel.NotificationId = (int)NotificationType.NewMessage; DoStuff(notifModel, contact.ContactId, 1, userId); /*foreach (var vwRouteGroup in otherUsers) * { * * }*/ dataModel.SaveChanges(); } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Warning, Message = getResource.getMessage("UnknownGroup") }); return(string.Empty); } } return(string.Empty); }
public PaymentDetailModel ChargeAccount(int userId, int chargeValue, string userNameFamilyString) { var paymentDetailModel = new PaymentDetailModel(); var desc = string.Format(getResource.getMessage("PaymentDesc"), userNameFamilyString, chargeValue); string authority; int status = _zarinPalService.RequestAuthoruty(chargeValue, desc, out authority); using (var dataModel = new MibarimEntities()) { var pr = new PayReq(); pr.PayReqCreateTime = DateTime.Now; pr.PayReqUserId = userId; pr.PayReqValue = chargeValue; pr.PayReqStatus = status.ToString(); if (status == 100) { pr.PayReqAuthority = authority; } dataModel.PayReqs.Add(pr); dataModel.SaveChanges(); paymentDetailModel.ReqId = pr.PayReqId; } paymentDetailModel.BankLink = "https://www.zarinpal.com/pg/StartPay/" + authority; paymentDetailModel.Authority = authority; paymentDetailModel.State = status; return(paymentDetailModel); }
public PaymentDetailModel Payresult(long modelReqId) { var fanapService = new FanapService(); var res = new PaymentDetailModel(); using (var dataModel = new MibarimEntities()) { var payreq = dataModel.PayReqs.FirstOrDefault(x => x.PayReqId == modelReqId); var payres = fanapService.GetPaymentResult(payreq.PayReqRefID); if (payres != null) { if (payres.payed) { payreq.PayReqStatus = ((int)PaymentStatus.Payed).ToString(); res.State = (int)PaymentStatus.Payed; fanapService.CloseInvoice(payreq.PayReqRefID); var reserve = _routeManager.ReserveSeat(payreq.PayReqId); } else if (payres.canceled) { payreq.PayReqStatus = ((int)PaymentStatus.Canceled).ToString(); res.State = (int)PaymentStatus.Canceled; } //fanapService.CloseInvoice(payreq.PayReqRefID); dataModel.SaveChanges(); } } return(res); }
public PaymentDetailModel VerifyPayment(PaymentDetailModel model) { var paymentDetailModel = new PaymentDetailModel(); using (var dataModel = new MibarimEntities()) { var amount = dataModel.PayReqs.FirstOrDefault(x => x.PayReqAuthority == model.Authority); if (amount != null) { long refId; int status = _zarinPalService.VerifyTransaction(model.Authority, (int)amount.PayReqValue, out refId); amount.PayReqStatus = status.ToString(); if (status == 100) { amount.PayReqRefID = refId.ToString(); var payRoute = dataModel.vwPayRoutes.FirstOrDefault( x => x.PayReqId == amount.PayReqId && x.DrIsDeleted == false); var route = dataModel.vwStationRoutes.FirstOrDefault(x => x.StationRouteId == payRoute.StationRouteId); _transactionManager.ChargeAccount(amount.PayReqUserId, (int)route.PassPrice); if (route.DriverPrice > route.PassPrice) { _transactionManager.GiftChargeAccount(amount.PayReqUserId, (int)(route.DriverPrice - route.PassPrice)); } _transactionManager.PayMoney(amount.PayReqUserId, (int)payRoute.UserId, (int)route.DriverPrice); NotifModel notifModel = new NotifModel(); notifModel.Title = getResource.getMessage("SeatReserved"); notifModel.Body = string.Format(getResource.getMessage("SeatReservedFor"), route.SrcMainStName, route.DstMainStName, payRoute.TStartTime.ToString("HH:mm")); notifModel.RequestCode = (int)payRoute.PayReqId; notifModel.NotificationId = (int)payRoute.PayReqId; //send passenger notif _notifManager.SendNotifToUser(notifModel, payRoute.PayReqUserId); //send driver notif _notifManager.SendNotifToUser(notifModel, (int)payRoute.UserId); _notifManager.SendNotifToAdmins(notifModel); //send passenger sms var user = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == payRoute.PayReqUserId); var mobileBrief = user.UserName.Substring(1); string smsBody = string.Format(getResource.getMessage("SeatReservedFor"), route.SrcMainStName, route.DstMainStName, payRoute.TStartTime.ToString("HH:mm")); var smsService = new SmsService(); smsService.SendSmsMessages(mobileBrief, smsBody); //send driver sms var driver = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == payRoute.UserId); var drivermobileBrief = driver.UserName.Substring(1); string smsBodydriver = string.Format(getResource.getMessage("SeatReservedFor"), route.SrcMainStName, route.DstMainStName, payRoute.TStartTime.ToString("HH:mm")); smsService.SendSmsMessages(drivermobileBrief, smsBodydriver); smsService.SendSmsMessages("9358695785", smsBody); smsService.SendSmsMessages("9354205407", smsBody); } dataModel.SaveChanges(); paymentDetailModel.RefId = refId; } } return(paymentDetailModel); }
public void ChargeAccount(int userId, int value, string desc, TransactionType transactionType) { using (var dataModel = new MibarimEntities()) { var userInfo = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == userId); //var desc = string.Format(getResource.getMessage("GiftPayDesc"), GetUserNameFamilyString(userInfo), value); var trans = new Tran(); trans.TransCreateTime = DateTime.Now; trans.TransType = (short)transactionType; trans.TransUserId = userId; trans.TransValue = value; trans.TransDescription = desc; dataModel.Trans.Add(trans); dataModel.SaveChanges(); try { NotifModel notifModel = new NotifModel(); notifModel.Title = getResource.getString("Transaction"); notifModel.Body = desc; notifModel.RequestCode = (int)trans.TransId; notifModel.NotificationId = (int)trans.TransId; _notifManager.SendNotifToUser(notifModel, userId); var mobileBrief = userInfo.UserName.Substring(1); var smsService = new SmsService(); smsService.SendSmsMessages(mobileBrief, desc); } catch (Exception e) { _logmanager.Log(Tag, "ChargeAccount", e.Message); } } }
public PasargadPayModel Getpayment(long modelReqId) { var passPayModel = new PasargadPayModel(); using (var dataModel = new MibarimEntities()) { var pr = dataModel.PayReqs.FirstOrDefault(x => x.PayReqId == modelReqId); //var trip = dataModel.BookRequests.FirstOrDefault(x => x.PayReqId == (long)modelReqId); var pasargadPayModel = _pasargadService.RequestPayment((double)pr.PayReqValue, modelReqId, pr.PayReqCreateTime); //pr.PayReqAuthority = modelReqId.ToString(); pr.PayReqStatus = "200"; dataModel.SaveChanges(); passPayModel.Amount = pasargadPayModel.Amount; passPayModel.MerchantCode = pasargadPayModel.MerchantCode; passPayModel.TerminalCode = pasargadPayModel.TerminalCode; passPayModel.RedirectAddress = pasargadPayModel.RedirectAddress; passPayModel.InvoiceNumber = pasargadPayModel.InvoiceNumber; passPayModel.InvoiceDate = pasargadPayModel.InvoiceDate; passPayModel.TimeStamp = pasargadPayModel.TimeStamp; passPayModel.Action = pasargadPayModel.Action; passPayModel.Sign = pasargadPayModel.Sign; passPayModel.BankLink = pasargadPayModel.BankLink; return(passPayModel); } }
public PasargadPayModel ChargePasargad(int userId, long chargeValue, string userNameFamilyString, long tripId, DateTime tripTime) { var pasargadPayModel = new CoreExternalService.Models.PasargadPayModel(); var passPayModel = new PasargadPayModel(); var desc = string.Format(getResource.getMessage("PaymentDesc"), userNameFamilyString, chargeValue); //(decimal chargeValue, string desc, long tripId, DateTime tripTime) pasargadPayModel = _pasargadService.RequestPayment((long)chargeValue, tripId, tripTime); using (var dataModel = new MibarimEntities()) { var pr = new PayReq(); pr.PayReqCreateTime = DateTime.Now; pr.PayReqUserId = userId; pr.PayReqValue = (int)chargeValue; pr.PayReqAuthority = pasargadPayModel.MerchantCode; pr.PayReqStatus = desc; dataModel.PayReqs.Add(pr); dataModel.SaveChanges(); passPayModel.ReqId = pr.PayReqId; } passPayModel.Amount = pasargadPayModel.Amount; passPayModel.MerchantCode = pasargadPayModel.MerchantCode; passPayModel.TerminalCode = pasargadPayModel.TerminalCode; passPayModel.Amount = pasargadPayModel.Amount; passPayModel.RedirectAddress = pasargadPayModel.RedirectAddress; passPayModel.InvoiceNumber = pasargadPayModel.InvoiceNumber; passPayModel.InvoiceDate = pasargadPayModel.InvoiceDate; passPayModel.TimeStamp = pasargadPayModel.TimeStamp; passPayModel.Sign = pasargadPayModel.Sign; passPayModel.BankLink = pasargadPayModel.BankLink; return(passPayModel); }
public void PayMoney(int sourceUserId, int destinationUserId, int value) { using (var dataModel = new MibarimEntities()) { using (var dbContextTransaction = dataModel.Database.BeginTransaction()) { try { var sourceUserInfo = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == sourceUserId); var desUserInfo = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == destinationUserId); var desc = string.Format(getResource.getMessage("PayMoneyDesc"), value, GetUserNameFamilyString(sourceUserInfo), GetUserNameFamilyString(desUserInfo)); var trans = new Tran(); trans.TransCreateTime = DateTime.Now; trans.TransType = (int)TransactionType.PayMoney; trans.TransUserId = sourceUserId; trans.TransValue = (-1) * value; trans.TransDescription = desc; dataModel.Trans.Add(trans); dataModel.SaveChanges(); var recTrans = new Tran(); recTrans.TransCreateTime = DateTime.Now; recTrans.TransType = (int)TransactionType.ReceivePay; recTrans.TransUserId = destinationUserId; //ServiceWage.Fee = value; recTrans.TransValue = value;//- ServiceWage.Wage; recTrans.TransDescription = desc; recTrans.TransPair = trans.TransId; dataModel.Trans.Add(recTrans); dataModel.SaveChanges(); dbContextTransaction.Commit(); NotifModel notifModel = new NotifModel(); notifModel.Title = getResource.getString("Transaction"); notifModel.Body = desc; notifModel.Tab = (int)MainTabs.Profile; notifModel.RequestCode = (int)NotificationType.MoneyTransaction; notifModel.NotificationId = (int)NotificationType.MoneyTransaction; _notifManager.SendNotifToUser(notifModel, sourceUserId); _notifManager.SendNotifToUser(notifModel, destinationUserId); } catch (Exception) { dbContextTransaction.Rollback(); } } } }
public void SaveFanapUser(int userId, int fModelUserName) { using (var dataModel = new MibarimEntities()) { var fanapModel = dataModel.Fanaps.FirstOrDefault(x => x.fuserId == fModelUserName); fanapModel.userId = userId; dataModel.SaveChanges(); } }
public PaymentDetailModel FanapBookTrip(int userId, long tripId) { var res = new PaymentDetailModel(); var fanapService = new FanapService(); var pr = new PayReq(); using (var dataModel = new MibarimEntities()) { var trip = dataModel.vwDriverTrips.FirstOrDefault(x => x.TripId == tripId && !x.DrIsDeleted); if (trip != null) { pr.PayReqCreateTime = DateTime.Now; pr.PayReqUserId = userId; pr.PayReqValue = (double)trip.PassPrice; dataModel.PayReqs.Add(pr); dataModel.SaveChanges(); var bookreq = new BookRequest(); bookreq.TripId = tripId; bookreq.BrCreateTime = DateTime.Now; bookreq.BookingType = (int)BookingTypes.Fanap; bookreq.UserId = userId; bookreq.IsBooked = false; bookreq.PayReqId = pr.PayReqId; dataModel.BookRequests.Add(bookreq); dataModel.SaveChanges(); var fanapUser = dataModel.Fanaps.Where(x => x.userId == userId).OrderByDescending(y => y.FanapId).FirstOrDefault(); var user = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == userId); var ott = fanapService.GetOneTimeToken(); var desc = string.Format(getResource.getMessage("PaymentDesc"), user.Name + " " + user.Family, trip.PassPrice); var factorId = fanapService.IssueInvoice(trip.PassPrice, fanapUser.fuserId, ott, desc); /*res.BankLink = "http://sandbox.fanapium.com:1031/v1/pbc/payinvoice/?invoiceId=" + factorId + "&redirectUri=" + "http://ifanap.mibarim.ir/fanap/PayReturn/?payreqId=" + pr.PayReqId + + "&callUri=" + "http://ifanap.mibarim.ir/fanap/PayReturn/?payreqId=" + pr.PayReqId;*/ res.BankLink = "https://gw.fanapium.com/v1/pbc/payinvoice/?invoiceId=" + factorId + "&redirectUri=" + "http://ifanap.mibarim.ir/fanap/PayReturn/?payreqId=" + pr.PayReqId + "&callUri=" + "http://ifanap.mibarim.ir/fanap/PayReturn/?payreqId=" + pr.PayReqId; pr.PayReqRefID = factorId; dataModel.SaveChanges(); } return(res); } }
public PasargadResponseModel VerifyPasargadPayment(PasargadPaymentModel model) { var responseModel = new PasargadResponseModel(); using (var dataModel = new MibarimEntities()) { /* long payReqId; * long.TryParse(model.In,out payReqId);*/ var payreq = dataModel.PayReqs.FirstOrDefault(x => x.PayReqId == model.In); if (payreq != null && payreq.PayReqCreateTime.ToString("yyyy/MM/dd HH:mm") == model.Id) { payreq.PayReqRefID = model.Tref; dataModel.SaveChanges(); var check = _pasargadService.CheckPayment(payreq.PayReqId, payreq.PayReqRefID, payreq.PayReqCreateTime.ToString("yyyy/MM/dd HH:mm")); payreq.TraceNumber = check.TraceNumber; payreq.ReferenceNumber = check.ReferenceNumber; payreq.PayReqStatus = "1001"; dataModel.SaveChanges(); responseModel.Result = check.Result; responseModel.ReferenceNumber = check.ReferenceNumber; responseModel.TraceNumber = check.TraceNumber; responseModel.ResultMessage = "شماره تراکنش" + check.TraceNumber; if (check.Result) { var verify = _pasargadService.VerifyPasargadPayment(payreq.PayReqId, payreq.PayReqValue, payreq.PayReqCreateTime.ToString("yyyy/MM/dd HH:mm")); payreq.PayReqStatus = "100"; payreq.PayReqAuthority = check.ReferenceNumber; dataModel.SaveChanges(); responseModel.Result = verify.Result; responseModel.ResultMessage = verify.ResultMessage; } else { responseModel.Result = false; } } else { responseModel.Result = false; } } return(responseModel); }
public void Log(string controller, string action, string message) { using (var dataModel = new MibarimEntities()) { dataModel.EventLogs.Add(new EventLog() { LogCreateTime = DateTime.Now, LogController = controller, LogAction = action, LogMessage = message }); dataModel.SaveChanges(); } }
public string AppointFinalConfirm(int userId, AppointConfirmModel model) { using (var dataModel = new MibarimEntities()) { var validation = dataModel.vwRouteGroups.Where(x => x.UserId == userId && x.GroupId == model.GroupId).ToList(); if (validation.Count > 0) { var group = dataModel.Groups.FirstOrDefault(x => x.GroupId == model.GroupId); if (group != null) { if (!(bool)group.GIsDriverConfirmed) { if (group.GRouteRequestId == model.RouteId) { group.GIsDriverConfirmed = true; dataModel.SaveChanges(); return(getResource.getMessage("GroupConfirmed")); } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("UnknowError") }); throw new Exception(getResource.getMessage("UnknowError")); } } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("AppointAlreadySet") }); } } } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Warning, Message = getResource.getMessage("UnknownGroup") }); return(string.Empty); } } return(string.Empty); }
public string GetTap30Token(string code) { using (var dataModel = new MibarimEntities()) { TaxiMeterService taxiMeterService = new TaxiMeterService(); var token = taxiMeterService.GetTap30Token(code); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.Tap30App; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Valid; newToken.Token = token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); return(token); } }
public void GiftChargeAccount(int userId, int value) { using (var dataModel = new MibarimEntities()) { var userInfo = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == userId); var desc = string.Format(getResource.getMessage("GiftPayDesc"), GetUserNameFamilyString(userInfo), value); var trans = new Tran(); trans.TransCreateTime = DateTime.Now; trans.TransType = (int)TransactionType.GiftChargeAccount; trans.TransUserId = userId; trans.TransValue = value; trans.TransDescription = desc; dataModel.Trans.Add(trans); dataModel.SaveChanges(); } }
public List <CommentModel> GetGroupComments(int userId, int groupId) { var comments = new List <CommentModel>(); using (var dataModel = new MibarimEntities()) { var validation = dataModel.Contacts.Where(x => (x.ContactDriverUserId == userId || x.ContactPassengerUserId == userId) && x.ContactId == groupId && !x.ContactIsDeleted).ToList(); if (validation.Count > 0) { var vwcomments = dataModel.vwChats.Where(x => x.ContactId == groupId).OrderBy(x => x.ChatCreateTime).ToList(); foreach (var vwcomment in vwcomments) { var comment = new CommentModel(); comment.CommentId = vwcomment.ChatId; comment.GroupId = groupId; comment.NameFamily = vwcomment.Name + " " + vwcomment.Family; comment.TimingString = _timingService.GetTimingString(vwcomment.ChatCreateTime); comment.Comment = vwcomment.ChatTxt; comment.IsDeletable = (vwcomment.ChatUserId == userId); //comment.UserPic = vwcomment.UserPic; comment.UserImageId = vwcomment.UserImageId.ToString(); comments.Add(comment); /*var notifs = * dataModel.Notifications.FirstOrDefault( * x => x.NotifUserId == userId && x.NotifCommentId == vwcomment.ChatId); * if (notifs != null) * { * notifs.IsNotificationSeen = true; * notifs.IsNotificationSent = true; * }*/ } dataModel.Chats.Where(x => x.ContactId == groupId && x.ChatUserId != userId) .Each(x => x.IsChatSeen = true); dataModel.SaveChanges(); } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Warning, Message = getResource.getMessage("UnknownGroup") }); } } return(comments); }
public string ConfirmAppointment(int userid, AppointmentModel model) { using (var dataModel = new MibarimEntities()) { var validation = dataModel.vwRouteGroups.Where(x => x.UserId == userid && x.GroupId == model.GroupId).ToList(); if (validation.Count > 0) { var group = dataModel.Groups.FirstOrDefault(x => x.GroupId == model.GroupId); if (group != null) { if (group.GIsDriverConfirmed == null || !(bool)group.GIsDriverConfirmed) { group.GRouteRequestId = model.RouteId; group.AppointTime = model.AppointTime; group.AppointTime = model.AppointTime; group.GIsDriverConfirmed = false; group.GAppointAddress = model.GAppointAddress; group.GAppointLatitude = decimal.Parse(model.GAppointLatitude); group.GAppointLongitude = decimal.Parse(model.GAppointLongitude); group.GAppointGeo = CreatePoint(model.GAppointLatitude, model.GAppointLongitude); group.ConfirmedPrice = (decimal)model.ConfirmedPrice; dataModel.SaveChanges(); return(getResource.getMessage("GroupConfirmed")); } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("AppointAlreadySet") }); } } } else { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Warning, Message = getResource.getMessage("UnknownGroup") }); return(string.Empty); } } return(string.Empty); }
public string GetAlopeykToken(string code) { using (var dataModel = new MibarimEntities()) { var aloPeykToken = dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) .FirstOrDefault(x => x.TokenApp == (short)TokenApp.AlopeykApp && x.TokenState == (short)TokenStatus.Invalid); //fasdf TaxiMeterService taxiMeterService = new TaxiMeterService(); var token = taxiMeterService.GetAloPeykToken(code, aloPeykToken.Token); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.AlopeykApp; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Valid; newToken.Token = "Bearer " + token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); return(token); } }
public UserModel GetFanapUserInfo(FanapModel fanapModel) { var userInfomodel = new UserModel(); var fanapService = new FanapService(); var userInfo = new FanapUserInfo(); using (var dataModel = new MibarimEntities()) { var cont = fanapService.GetAuthenticationToken(fanapModel.Code); if (cont.access_token != null) { userInfo = fanapService.GetFanapUser(cont.access_token); if (userInfo != null) { var fanap = new Fanap(); fanap.userId = 1; fanap.authorization_code = fanapModel.Code; fanap.access_token = cont.access_token; fanap.refresh_token = cont.refresh_token; fanap.nickName = userInfo.nickName; fanap.birthDate = userInfo.birthDate; fanap.fuserId = userInfo.userId; userInfomodel.UserId = userInfo.userId; userInfomodel.Name = userInfo.firstName; userInfomodel.Family = userInfo.lastName; userInfomodel.UserId = userInfo.userId; userInfomodel.UserName = userInfo.cellphoneNumber; userInfomodel.Email = userInfo.email; fanap.score = userInfo.score.ToString(); dataModel.Fanaps.Add(fanap); dataModel.SaveChanges(); var business = fanapService.getBusiness(); fanapService.FollowBusiness(cont.access_token, business.result.id); return(userInfomodel); } } } return(userInfomodel); }
public List <NotifModel> GetUserNotification(int userId, NotificationType notificationType) { var res = new List <NotifModel>(); using (var dataModel = new MibarimEntities()) { var now = DateTime.Now; var notifs = dataModel.Notifications.Where(x => x.NotifUserId == userId && x.NotifExpireTime > now && !x.IsNotificationSent && x.NotifType == (short)notificationType); foreach (var notification in notifs) { var notifModel = new NotifModel(); notifModel.Body = notification.NotifBody; notifModel.Title = notification.NotifTitle; notifModel.NotificationId = notification.NotificationId; notification.IsNotificationSent = true; res.Add(notifModel); } dataModel.SaveChanges(); } return(res); }
public bool AddRouteGroup(int userId, RouteGroupModel model, int suggestAccompanyCount) { var routegroup = new RouteGroup(); using (var dataModel = new MibarimEntities()) { //I have a group and add this route to it var userGroup = dataModel.vwRouteGroups.FirstOrDefault(x => x.RGHolderRRId == model.RgHolderRrId && x.RouteRequestId == model.RgHolderRrId && x.RGIsConfirmed); //I'm part of a group and add this to that group if (userGroup == null) { userGroup = dataModel.vwRouteGroups.FirstOrDefault(x => x.UserId == userId && x.RouteRequestId == model.RgHolderRrId && x.RGIsConfirmed); } if (userGroup == null) { if (IsAddQuataExceed(userId, model.RgHolderRrId)) { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("OnlythreeGroupAllowed") }); return(false); } using (var dbContextTransaction = dataModel.Database.BeginTransaction()) { try { var group = new Group() { GCreateTime = DateTime.Now, GIsDeleted = false, GCreatorUser = userId }; dataModel.Groups.Add(group); dataModel.SaveChanges(); routegroup.RGCreateTime = DateTime.Now; routegroup.GroupId = group.GroupId; routegroup.RGRouteRequestId = model.RouteId; routegroup.RGHolderRRId = model.RgHolderRrId; routegroup.RGIsDeleted = false; routegroup.RGIsConfirmed = false; dataModel.RouteGroups.Add(routegroup); var holderRoutegroup = new RouteGroup(); holderRoutegroup.RGCreateTime = DateTime.Now; holderRoutegroup.GroupId = group.GroupId; holderRoutegroup.RGRouteRequestId = model.RgHolderRrId; holderRoutegroup.RGHolderRRId = model.RgHolderRrId; holderRoutegroup.RGIsDeleted = false; holderRoutegroup.RGIsConfirmed = true; dataModel.RouteGroups.Add(holderRoutegroup); dbContextTransaction.Commit(); } catch (Exception) { dbContextTransaction.Rollback(); } } } else { if (GroupRouteCount(userGroup.GroupId) + suggestAccompanyCount > 5) { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("GroupCapacityExceed") }); return(false); } if (IsRepeated(userId, model.RgHolderRrId, model.RouteId, userGroup.GroupId)) { _responseProvider.SetBusinessMessage(new MessageResponse() { Type = ResponseTypes.Error, Message = getResource.getMessage("RequestRepeated") }); return(false); } routegroup.RGCreateTime = DateTime.Now; routegroup.GroupId = userGroup.GroupId; routegroup.RGRouteRequestId = model.RouteId; routegroup.RGHolderRRId = model.RgHolderRrId; routegroup.RGIsDeleted = false; routegroup.RGIsConfirmed = false; dataModel.RouteGroups.Add(routegroup); } dataModel.SaveChanges(); } return(true); }
public TmTokensModel GetTokens(TmTokensModel model) { var res = new TmTokensModel(); using (var dataModel = new MibarimEntities()) { if (model.SnappTokenStatus == (int)TokenStatus.NotSet || model.SnappTokenStatus == (int)TokenStatus.Expired) { var lastsnapToken = dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) .FirstOrDefault(x => x.TokenApp == (short)TokenApp.SnapApp); if (lastsnapToken != null) { if (lastsnapToken.TokenState != (int)TokenStatus.Expired) { if (model.SnappTokenStatus == (int)TokenStatus.Expired) { if (model.SnappToken == lastsnapToken.Token && lastsnapToken.TokenState != (int)TokenStatus.Expired) { lastsnapToken.TokenState = (short)model.SnappTokenStatus; var token = GetNewSnappToken(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.SnapApp; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Valid; newToken.Token = "Bearer " + token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); res.SnappTokenStatus = (short)TokenStatus.Valid; res.SnappToken = "Bearer " + token; } else if (lastsnapToken.TokenState != (int)TokenStatus.Expired) { res.SnappTokenStatus = (short)lastsnapToken.TokenState; res.SnappToken = lastsnapToken.Token; } else { res.SnappTokenStatus = (short)TokenStatus.Invalid; } } else { res.SnappTokenStatus = (short)TokenStatus.Valid; res.SnappToken = lastsnapToken.Token; } } else { res.SnappTokenStatus = (short)TokenStatus.Invalid; } } else { var token = GetNewSnappToken(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.SnapApp; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Valid; newToken.Token = "Bearer " + token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); res.SnappTokenStatus = (short)TokenStatus.Valid; res.SnappToken = token; } } if (model.Tap30TokenStatus == (int)TokenStatus.NotSet || model.Tap30TokenStatus == (int)TokenStatus.Expired) { /*var tap30Token = * dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) * .FirstOrDefault(x => x.TokenApp== (short)TokenApp.Tap30App); * if (tap30Token != null) * { * if (tap30Token.TokenState != (int)TokenStatus.Expired) * { * if (model.Tap30TokenStatus == (int)TokenStatus.Expired) * { * if (tap30Token.Token == model.Tap30Token && tap30Token.TokenState != (int)TokenStatus.Expired){ * /*tap30Token.TokenState = (short)model.Tap30TokenStatus; * var token = GetNewTap30Token(); * var newToken = new AppsToken(); * newToken.TokenApp = (short)TokenApp.Tap30App; * newToken.TokenCreateTime = DateTime.Now; * newToken.TokenState = (short)TokenStatus.Invalid; * newToken.Token = token; * dataModel.AppsTokens.Add(newToken); * dataModel.SaveChanges(); * res.Tap30TokenStatus = (short)TokenStatus.Invalid; * res.Tap30Token = tap30Token.Token;#1# * } * else if (tap30Token.TokenState != (int)TokenStatus.Expired) * { * res.Tap30TokenStatus = tap30Token.TokenState; * res.Tap30Token = tap30Token.Token; * } * else * { * res.Tap30TokenStatus = (short)TokenStatus.Invalid; * } * } * else * { * res.Tap30TokenStatus = tap30Token.TokenState; * res.Tap30Token = tap30Token.Token; * } * } * else * {*/ res.Tap30TokenStatus = (short)TokenStatus.Invalid; //} //} /*else * { * var token = GetNewTap30Token(); * var newToken = new AppsToken(); * newToken.TokenApp = (short)TokenApp.Tap30App; * newToken.TokenCreateTime = DateTime.Now; * newToken.TokenState = (short)TokenStatus.Invalid; * newToken.Token = token; * dataModel.AppsTokens.Add(newToken); * dataModel.SaveChanges(); * res.Tap30TokenStatus = (short)TokenStatus.Invalid; * res.Tap30Token = token; * }*/ } if (model.CarpinoTokenStatus == (int)TokenStatus.NotSet || model.CarpinoTokenStatus == (int)TokenStatus.Expired) { var carpinoLastToken = dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) .FirstOrDefault(x => x.TokenApp == (short)TokenApp.CarpinoApp); if (carpinoLastToken != null) { if (carpinoLastToken.TokenState != (int)TokenStatus.Expired) { if (model.CarpinoTokenStatus == (int)TokenStatus.Expired) { if (model.CarpinoToken == carpinoLastToken.Token && carpinoLastToken.TokenState != (int)TokenStatus.Expired) { carpinoLastToken.TokenState = (short)model.CarpinoTokenStatus; var token = GetNewCarpinoToken(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.CarpinoApp; newToken.TokenCreateTime = DateTime.Now; newToken.Token = "Bearer " + token.CarpinoToken; /*var newrefreshToken = new AppsToken(); * newrefreshToken.TokenApp = (short)TokenApp.CarpinoRefreshApp; * newrefreshToken.TokenCreateTime = DateTime.Now; * newrefreshToken.TokenState = (short)TokenStatus.Valid; * newrefreshToken.Token = token.CarpinoToken; * dataModel.AppsTokens.Add(newrefreshToken);*/ if (token.CarpinoToken != null) { newToken.TokenState = (short)TokenStatus.Valid; res.CarpinoTokenStatus = (short)TokenStatus.Valid; res.CarpinoToken = "Bearer " + token.CarpinoToken; } else { newToken.TokenState = (short)TokenStatus.Invalid; res.CarpinoTokenStatus = (short)TokenStatus.Invalid; } dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); } else if (carpinoLastToken.TokenState != (int)TokenStatus.Expired) { res.CarpinoTokenStatus = (short)carpinoLastToken.TokenState; res.CarpinoToken = carpinoLastToken.Token; } else { res.CarpinoTokenStatus = (short)TokenStatus.Invalid; } } else { res.CarpinoTokenStatus = carpinoLastToken.TokenState; res.CarpinoToken = carpinoLastToken.Token; } } else { res.CarpinoTokenStatus = (short)TokenStatus.Invalid; } } else { var token = GetNewCarpinoToken(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.CarpinoApp; newToken.TokenCreateTime = DateTime.Now; newToken.Token = "Bearer " + token.CarpinoToken; if (token.CarpinoToken != null) { newToken.TokenState = (short)TokenStatus.Valid; res.CarpinoTokenStatus = (short)TokenStatus.Valid; res.CarpinoToken = "Bearer " + token.CarpinoToken; } else { newToken.TokenState = (short)TokenStatus.Invalid; res.CarpinoTokenStatus = (short)TokenStatus.Invalid; } dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); } } if (model.AloPeykTokenStatus == (int)TokenStatus.NotSet || model.AloPeykTokenStatus == (int)TokenStatus.Expired) { var aloPeykToken = dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) .FirstOrDefault(x => x.TokenApp == (short)TokenApp.AlopeykApp); if (aloPeykToken != null) { if (aloPeykToken.TokenState != (int)TokenStatus.Expired) { if (model.AloPeykTokenStatus == (int)TokenStatus.Expired) { if (aloPeykToken.Token == model.AloPeykToken && aloPeykToken.TokenState != (int)TokenStatus.Expired) { aloPeykToken.TokenState = (short)model.AloPeykTokenStatus; var token = SendAloPeykSms(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.AlopeykApp; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Invalid; newToken.Token = token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); res.AloPeykTokenStatus = (short)TokenStatus.Invalid; res.AloPeykToken = aloPeykToken.Token; } else if (aloPeykToken.TokenState != (int)TokenStatus.Expired) { res.AloPeykTokenStatus = aloPeykToken.TokenState; res.AloPeykToken = aloPeykToken.Token; } else { res.AloPeykTokenStatus = (short)TokenStatus.Invalid; } } else { res.AloPeykTokenStatus = aloPeykToken.TokenState; res.AloPeykToken = aloPeykToken.Token; } } else { res.AloPeykTokenStatus = (short)TokenStatus.Invalid; } } else { var token = SendAloPeykSms(); var newToken = new AppsToken(); newToken.TokenApp = (short)TokenApp.AlopeykApp; newToken.TokenCreateTime = DateTime.Now; newToken.TokenState = (short)TokenStatus.Invalid; newToken.Token = token; dataModel.AppsTokens.Add(newToken); dataModel.SaveChanges(); res.AloPeykTokenStatus = (short)TokenStatus.Invalid; res.AloPeykToken = token; } } /*var aloPeykToken = * dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime) * .FirstOrDefault(x => x.TokenApp == (short)TokenApp.AlopeykApp); * res.AloPeykToken = aloPeykToken.Token; * res.AloPeykTokenStatus = (short)TokenStatus.Valid;*/ } return(res); }