コード例 #1
0
 public void SendTripNotifications(Contact cont)
 {
     using (var dataModel = new MibarimEntities())
     {
         var gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == cont.ContactDriverUserId)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, NotificationType.NewTrip.ToString());
         }
         gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == cont.ContactPassengerUserId)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, NotificationType.NewTrip.ToString());
         }
         gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == 1)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, NotificationType.NewTrip.ToString());
         }
     }
 }
コード例 #2
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);
        }
コード例 #3
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);
        }
コード例 #4
0
        public List <WithdrawUserReqModel> GetPayingRequests()
        {
            var res = new List <WithdrawUserReqModel>();

            using (var dataModel = new MibarimEntities())
            {
                var withdrawReqs =
                    dataModel.Withdraws.Where(x => x.WithdrawState == (int)WithdrawStates.Submitted).OrderByDescending(x => x.CreateTime).ToList();
                foreach (var withdrawReq in withdrawReqs)
                {
                    var user = dataModel.vwUserInfoes.FirstOrDefault(x => x.UserId == withdrawReq.UserId);
                    var with = new WithdrawUserReqModel();
                    with.Name                = user.Name;
                    with.Family              = user.Family;
                    with.Mobile              = user.UserName;
                    with.WithdrawAmount      = withdrawReq.WithdrawAmount.ToString();
                    with.ShabaNo             = withdrawReq.Shaba;
                    with.WithdrawDate        = _timingService.GetTimingString(withdrawReq.CreateTime);
                    with.WithdrawState       = (WithdrawStates)withdrawReq.WithdrawState;
                    with.WithdrawStateString =
                        getResource.getString(((WithdrawStates)withdrawReq.WithdrawState).ToString());
                    res.Add(with);
                }
            }
            return(res);
        }
コード例 #5
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);
            }
        }
コード例 #6
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);
        }
コード例 #7
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);
        }
コード例 #8
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);
         }
     }
 }
コード例 #9
0
        public List <GroupModel> GetSuggestedGroups(int routeRequestId)
        {
            var suggestedGroups = new List <GroupModel>();

            using (var dataModel = new MibarimEntities())
            {
                var groupRoutes  = new List <vwRouteGroup>();
                var groupRouteNo = dataModel.vwRouteGroups.Where(x => x.RouteRequestId == routeRequestId && !x.RGIsConfirmed).Select(y => y.GroupId).ToList();
                if (groupRouteNo.Count > 0)
                {
                    groupRoutes = dataModel.vwRouteGroups.Where(x => groupRouteNo.Contains(x.GroupId) && x.RouteRequestId != routeRequestId).ToList();
                }
                if (groupRoutes.Count > 0)
                {
                    var timings = _timingService.GetRequestTimings(groupRoutes.Select(x => x.RouteRequestId).ToList());
                    var groups  = groupRoutes.GroupBy(p => p.GroupId,
                                                      (key, g) => new
                    {
                        RouteGroupId = key,
                        requests     = g.ToList()
                    });
                    foreach (var group in groups)
                    {
                        var groupModel = new GroupModel();
                        groupModel.GroupId = group.RouteGroupId;
                        var routeGrouplist = new List <RouteGroupModel>();
                        foreach (var request in group.requests)
                        {
                            var routeGroupModel = new RouteGroupModel();
                            routeGroupModel.RouteId        = request.RouteRequestId;
                            routeGroupModel.RgHolderRrId   = request.RGHolderRRId;
                            routeGroupModel.SrcLatitude    = request.SrcLatitude.ToString();
                            routeGroupModel.SrcLongitude   = request.SrcLongitude.ToString();
                            routeGroupModel.DstLatitude    = request.DstLatitude.ToString();
                            routeGroupModel.DstLongitude   = request.DstLongitude.ToString();
                            routeGroupModel.DstLongitude   = request.DstLongitude.ToString();
                            routeGroupModel.RgIsConfimed   = request.RGIsConfirmed;
                            routeGroupModel.IsDrive        = request.IsDrive;
                            routeGroupModel.AccompanyCount = request.AccompanyCount;
                            routeGroupModel.Name           = request.Name;
                            routeGroupModel.Family         = request.Family;
                            routeGroupModel.PricingString  = _pricingManager.GetPriceString(new RouteRequestModel()
                            {
                                PriceOption = (PricingOptions)request.RRPricingOption,
                                CostMinMax  = (decimal)request.RRPricingMinMax,
                                IsDrive     = (bool)request.IsDrive
                            });
                            routeGroupModel.CarString    = GetCarString(request);
                            routeGroupModel.TimingString = _timingService.GetTimingString(timings.Where(y => y.RouteRequestId == request.RouteRequestId).ToList());
                            routeGrouplist.Add(routeGroupModel);
                        }
                        groupModel.GroupMembers = routeGrouplist;
                        suggestedGroups.Add(groupModel);
                    }
                }
            }
            return(suggestedGroups);
        }
コード例 #10
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();
     }
 }
コード例 #11
0
        public int GroupRouteCount(int groupId)
        {
            var groupCount = 0;

            using (var dataModel = new MibarimEntities())
            {
                groupCount = dataModel.vwRouteGroups.Where(x => x.GroupId == groupId).Sum(x => x.AccompanyCount + 1);
            }
            return(groupCount);
        }
コード例 #12
0
        public List <vwRRTiming> GetRequestTimings(List <long> routeRequestIds)
        {
            var list = new List <vwRRTiming>();

            using (var dataModel = new MibarimEntities())
            {
                list = dataModel.vwRRTimings.Where(x => routeRequestIds.Contains(x.RouteRequestId)).ToList();
            }
            return(list);
        }
コード例 #13
0
 private bool IsRepeated(int userId, long rgHolderRrId, long routeId, int groupId)
 {
     using (var dataModel = new MibarimEntities())
     {
         if (dataModel.vwRouteGroups.Any(x => x.RGHolderRRId == rgHolderRrId && x.RouteRequestId == routeId && x.GroupId == groupId && !x.RRIsDeleted))
         {
             return(true);
         }
         return(false);
     }
 }
コード例 #14
0
ファイル: GroupManager.cs プロジェクト: Hamedlq/m_CoreApiPlus
 private async Task DelayedTask(NotifModel notifModel, long contactId, int senderUserId, int receiverUserId)
 {
     using (var dataModel = new MibarimEntities())
     {
         if (dataModel.Chats.Any(x => x.ContactId == contactId && x.ChatUserId == senderUserId && x.IsChatSeen == false))
         {
             _notifManager.SendNotifToUser(notifModel, receiverUserId);
             dataModel.Chats.Where(x => x.ContactId == contactId && x.ChatUserId == senderUserId).Each(x => x.IsChatSeen = true);
         }
     }
 }
コード例 #15
0
 private bool IsAddQuataExceed(int userId, long rGHolderRRId)
 {
     using (var dataModel = new MibarimEntities())
     {
         var groupMade = dataModel.vwRouteGroups.Where(x => x.RGHolderRRId == rGHolderRRId).GroupBy(x => x.GroupId).ToList();
         if (groupMade.Count > 3)
         {
             return(true);
         }
         return(false);
     }
 }
コード例 #16
0
 public bool IsGroupCapacityExceed(int groupId, int accompanyCount)
 {
     using (var dataModel = new MibarimEntities())
     {
         var groupCount = dataModel.vwRouteGroups.Where(x => x.GroupId == groupId).Sum(x => x.AccompanyCount + 1);
         if (groupCount + accompanyCount > 5)
         {
             return(true);
         }
         return(false);
     }
 }
コード例 #17
0
 public void SendNotifToDriver(NotifModel notif, int userId)
 {
     using (var dataModel = new MibarimEntities())
     {
         var gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == userId && x.GtokenRole == (int)UserRoles.MobileDriver)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, notif.EncodedTitle, notif.EncodedBody, notif.Action, notif.Tab.ToString(), notif.RequestCode, (int)notif.NotificationId, notif.Url);
         }
     }
 }
コード例 #18
0
        public PathPriceResponse GetTap30Price(SrcDstModel model)
        {
            var res = new PathPriceResponse();

            using (var dataModel = new MibarimEntities())
            {
                var tap30Token =
                    dataModel.AppsTokens.OrderByDescending(x => x.TokenCreateTime)
                    .FirstOrDefault(x => x.TokenApp == (short)TokenApp.Tap30App);
                res.Tap30PathPrice = GetPriceFromTap30(model, tap30Token.Token);
            }
            return(res);
        }
コード例 #19
0
 public void SendNewEvent()
 {
     using (var dataModel = new MibarimEntities())
     {
         var gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == 1)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, NotificationType.NewEvent.ToString());
         }
     }
 }
コード例 #20
0
 public void SendNotifToAdmins(NotifModel notif)
 {
     using (var dataModel = new MibarimEntities())
     {
         var gtoken =
             dataModel.GoogleTokens.Where(x => x.GtokenUserId == 27 || x.GtokenUserId == 1 || x.GtokenUserId == 181 || x.GtokenUserId == 12325)
             .OrderByDescending(x => x.GtokenCreateTime).ToList();
         if (gtoken.Count > 0)
         {
             _gService.SendNotification(gtoken.FirstOrDefault().GtokenKey, notif.EncodedTitle, notif.EncodedBody, notif.Action, notif.Tab.ToString(), notif.RequestCode, (int)notif.NotificationId, notif.Url);
         }
     }
 }
コード例 #21
0
        public List <long> GetExcludeRouteRequestIds(int routeRequestId)
        {
            var groupRouteRequestIds = new List <long>();

            using (var dataModel = new MibarimEntities())
            {
                var groupRouteNo = dataModel.RouteGroups.Where(x => x.RGRouteRequestId == routeRequestId && !x.RGIsDeleted).Select(x => x.GroupId).ToList();
                if (groupRouteNo.Count > 0)
                {
                    groupRouteRequestIds = dataModel.vwRouteGroups.Where(y => groupRouteNo.Contains(y.GroupId)).Select(u => u.RouteRequestId).ToList();
                }
            }
            return(groupRouteRequestIds);
        }
コード例 #22
0
        public float GetRemain(int userId)
        {
            float remain = 0;

            using (var dataModel = new MibarimEntities())
            {
                var trips = dataModel.Trans.Where(x => x.TransUserId == userId).ToList();
                if (trips.Count > 0)
                {
                    remain = (float)trips.Sum(x => x.TransValue);
                }
            }
            return(remain);
        }
コード例 #23
0
        public float GetRemainWithoutGift(int userId)
        {
            float remain = 0;

            using (var dataModel = new MibarimEntities())
            {
                var trips = dataModel.Trans.Where(x => x.TransUserId == userId && x.TransType != (int)TransactionType.GiftChargeAccount).ToList();
                if (trips.Count > 0)
                {
                    remain = (float)trips.Sum(x => x.TransValue);
                }
            }
            return(remain);
        }
コード例 #24
0
 public void SendGroupNotif(NotifModel notif, List <int> userIds)
 {
     string[] gTokens;
     using (var dataModel = new MibarimEntities())
     {
         var gtokens =
             dataModel.GoogleTokens.Where(x => userIds.Contains((int)x.GtokenUserId))
             .GroupBy(x => x.GtokenUserId, (key, g) => g.OrderByDescending(e => e.GtokenCreateTime).FirstOrDefault()).ToList();
         if (gtokens.Count > 0)
         {
             _gService.SendGroupNotification(gtokens.Select(x => x.GtokenKey).ToList(), notif.Title, notif.Body, notif.Action, notif.Tab.ToString(), notif.Url);
         }
     }
 }
コード例 #25
0
ファイル: LogProvider.cs プロジェクト: Hamedlq/m_CoreApiPlus
 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();
     }
 }
コード例 #26
0
ファイル: GroupManager.cs プロジェクト: Hamedlq/m_CoreApiPlus
 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);
 }
コード例 #27
0
ファイル: GroupManager.cs プロジェクト: Hamedlq/m_CoreApiPlus
        public AppointmentModel GetPassengerConfirmInfo(int userId, int groupId, long routeId)
        {
            var appointmentModel = new AppointmentModel();

            using (var dataModel = new MibarimEntities())
            {
                var validation =
                    dataModel.vwRouteGroups.Where(x => x.UserId == userId && x.GroupId == groupId && x.RouteRequestId == routeId && x.RGIsConfirmed).ToList();
                if (validation.Count > 0)
                {
                    var groupInfo = dataModel.vwGroups.FirstOrDefault(x => x.GroupId == groupId);
                    if (groupInfo.GIsDriverConfirmed != null && groupInfo.GIsDriverConfirmed.Value)
                    {
                        var price = (decimal)groupInfo.ConfirmedPrice;
                        var cost  = price.ToString("N0", new NumberFormatInfo()
                        {
                            NumberGroupSizes     = new[] { 3 },
                            NumberGroupSeparator = ","
                        });
                        appointmentModel.ConfirmedPriceString  = cost;
                        appointmentModel.ConfirmedPriceMessage = string.Format(
                            getResource.getMessage("paymentMessage"), cost);
                        appointmentModel.AppointTime       = groupInfo.AppointTime.Value;
                        appointmentModel.AppointTimeString = groupInfo.AppointTime.Value.ToString("hh:mm");
                        appointmentModel.ConfirmedPrice    = groupInfo.ConfirmedPrice;
                        appointmentModel.GAppointAddress   = groupInfo.GAppointAddress;
                        appointmentModel.GAppointLatitude  = groupInfo.GAppointLatitude.ToString();
                        appointmentModel.GAppointLongitude = groupInfo.GAppointLongitude.ToString();
                    }
                    else
                    {
                        _responseProvider.SetBusinessMessage(new MessageResponse()
                        {
                            Type = ResponseTypes.Info, Message = getResource.getMessage("DriverNotSet")
                        });
                    }
                    return(appointmentModel);
                }
                else
                {
                    _responseProvider.SetBusinessMessage(new MessageResponse()
                    {
                        Type = ResponseTypes.Warning, Message = getResource.getMessage("UnknownGroup")
                    });
                    return(appointmentModel);
                }
            }
        }
コード例 #28
0
ファイル: GroupManager.cs プロジェクト: Hamedlq/m_CoreApiPlus
        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);
        }
コード例 #29
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);
     }
 }
コード例 #30
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();
     }
 }