Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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);
         }
     }
 }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 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();
             }
         }
     }
 }
Exemplo n.º 9
0
 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();
     }
 }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 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();
     }
 }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
 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);
     }
 }
Exemplo n.º 15
0
 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();
     }
 }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
 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);
 }
Exemplo n.º 18
0
 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);
     }
 }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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);
        }