Esempio n. 1
0
        private FsItemMtbl GetFsItemMtbl(FileSystemInfo fsInfo)
        {
            var fsItemMtbl = new FsItemMtbl
            {
                Uuid              = Guid.NewGuid(),
                Name              = fsInfo.Name,
                Path              = fsInfo.FullName,
                IsDirectory       = fsInfo is DirectoryInfo,
                CreationTime      = fsInfo.CreationTime,
                CreationTimeStr   = TimeStampHelper.TmStmp(fsInfo.CreationTime, true, TimeStamp.Seconds),
                LastAccessTime    = fsInfo.LastAccessTime,
                LastAccessTimeStr = TimeStampHelper.TmStmp(fsInfo.LastAccessTime, true, TimeStamp.Seconds),
                LastWriteTime     = fsInfo.LastWriteTime,
                LastWriteTimeStr  = TimeStampHelper.TmStmp(fsInfo.LastWriteTime, true, TimeStamp.Seconds)
            };

            if (!fsItemMtbl.IsDirectory)
            {
                fsItemMtbl.FileNameWithoutExtension = Path.GetFileNameWithoutExtension(fsItemMtbl.Name);
                fsItemMtbl.FileNameExtension        = Path.GetExtension(fsItemMtbl.Name);
                fsItemMtbl.Label = fsItemMtbl.FileNameExtension;
            }

            return(fsItemMtbl);
        }
Esempio n. 2
0
        public string AddJobSchedule <T>(T job, DateTime triggerDatetime)
        {
            var id = BackgroundJob.Schedule(
                () => JobScheduleHandler.Trigger(job),
                triggerDatetime);

            using (var scope = Applibs.AutofacConfig.Container.BeginLifetimeScope())
            {
                var jobName     = job.GetType().Name;
                var repo        = scope.Resolve <IJobScheduleRepository>();
                var jobSchedule = new JobSchedule()
                {
                    JobScheduleId       = id,
                    JobScheduleName     = jobName,
                    JobScheduleContent  = JsonConvert.SerializeObject(job),
                    CreateDateTimeStamp = TimeStampHelper.ToUtcTimeStamp(DateTime.Now)
                };

                repo.Add(jobSchedule);

                Console.WriteLine($"{DateTime.Now}-JobScheduleService AddJobSchedule:{JsonConvert.SerializeObject(jobSchedule)}");
            }

            return(id);
        }
Esempio n. 3
0
        public string AddRecurJobSchedule <T>(T job, string cronExpression)
        {
            var id = Guid.NewGuid().ToString();

            RecurringJob.AddOrUpdate(
                id,
                () => JobScheduleHandler.Trigger(job),
                cronExpression);

            using (var scope = Applibs.AutofacConfig.Container.BeginLifetimeScope())
            {
                var jobName     = job.GetType().Name;
                var repo        = scope.Resolve <IJobScheduleRepository>();
                var jobSchedule = new JobSchedule()
                {
                    JobScheduleId       = id,
                    JobScheduleName     = jobName,
                    JobScheduleContent  = JsonConvert.SerializeObject(job),
                    CreateDateTimeStamp = TimeStampHelper.ToUtcTimeStamp(DateTime.Now)
                };

                repo.Add(jobSchedule);

                Console.WriteLine($"{DateTime.Now}-JobScheduleService AddJobSchedule:{JsonConvert.SerializeObject(jobSchedule)}");
            }

            return(id);
        }
Esempio n. 4
0
        private static int SecondsUntilPatternConcluded(IWaveProvider reader, int targetFrequency1, int targetFrequency2)
        {
            var sampleProvider = reader.ToSampleProvider();
            var toneDetector   = new TonePatternDetector(targetFrequency1, targetFrequency2,
                                                         sampleProvider.WaveFormat.SampleRate);
            var  buffer      = new float[BufferSize];
            long sampleCount = 0;

            while (true)
            {
                var bytesRead = sampleProvider.Read(buffer, 0, buffer.Length);
                sampleCount += bytesRead;

                if (bytesRead < buffer.Length)
                {
                    break;
                }

                if (toneDetector.Detected(buffer))
                {
                    return(TimeStampHelper.GetElapsedSeconds(sampleProvider.WaveFormat.SampleRate, sampleCount));
                }
            }

            return(-1);
        }
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            if (SkipAuthorization(actionContext))
            {
                return;
            }

            AuthenticationHeaderValue authRequest = actionContext.Request.Headers.Authorization;

            if (authRequest == null || authRequest.Scheme != "Bearer")
            {
                var body = ExceptionHelper.FormatExceptionMessage(new System.Exception("jwt auth error"));
                HttpResponseMessage responseMessage = actionContext.Request.CreateResponse(HttpStatusCode.OK, body);
                actionContext.Response = responseMessage;
                return;
            }

            string token = authRequest.Parameter;

            if (string.IsNullOrWhiteSpace(token))
            {
                var body = ExceptionHelper.FormatExceptionMessage(new System.Exception("miss jwt token"));
                HttpResponseMessage responseMessage = actionContext.Request.CreateResponse(HttpStatusCode.OK, body);
                actionContext.Response = responseMessage;
                return;
            }

            try
            {
                JwtPayload payload = JsonConvert.DeserializeObject <JwtPayload>(JwtHelper.VerifyToken(token).ToString());

                if (payload.Exp <= TimeStampHelper.ToTimeStamp(DateTime.Now))
                {
                    var body = ExceptionHelper.FormatExceptionMessage(new System.Exception("jwt token expired"));
                    HttpResponseMessage responseMessage = actionContext.Request.CreateResponse(HttpStatusCode.OK, body);
                    actionContext.Response = responseMessage;
                    return;
                }
                else if (payload.Iss != JwtHelper.JwtIss || payload.Aud != JwtHelper.JwtAud)
                {
                    var body = ExceptionHelper.FormatExceptionMessage(new System.Exception("jwt token illegal"));
                    HttpResponseMessage responseMessage = actionContext.Request.CreateResponse(HttpStatusCode.OK, body);
                    actionContext.Response = responseMessage;
                    return;
                }
                else
                {
                }
            }
            catch (System.Exception)
            {
                var body = ExceptionHelper.FormatExceptionMessage(new System.Exception("jwt token illegal"));
                HttpResponseMessage responseMessage = actionContext.Request.CreateResponse(HttpStatusCode.OK, body);
                actionContext.Response = responseMessage;
                return;
            }

            base.OnAuthorization(actionContext);
        }
Esempio n. 6
0
        public void AddTest()
        {
            var addResult = this.repo.Add(new JobSchedule()
            {
                JobScheduleId       = Guid.NewGuid().ToString(),
                JobScheduleName     = "Test",
                JobScheduleContent  = "TestContent",
                CreateDateTimeStamp = TimeStampHelper.ToUtcTimeStamp(DateTime.Now)
            });

            Assert.IsTrue(addResult);
        }
        public void LogEvent(ElevatorModel elevator, string subject)
        {
            if (elevator == null)
            {
                throw new ArgumentNullException();
            }

            elevator.Events.Add(new ElevatorEvent
            {
                Subject   = subject,
                TimeStamp = TimeStampHelper.GetCurrentTimeStamp()
            });
        }
Esempio n. 8
0
        /// <summary>
        ///  从 Xml 转换 RequestMessage 对象的处理(只是创建实例,不填充数据)
        /// </summary>
        /// <param name="responseMsgType"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        public override IResponseMessageBase GetResponseEntityMappingResult(ResponseMsgType responseMsgType, XDocument doc)
        {
            var res = doc.ToString();
            IResponseMessageBase resBase = new ResponseMessageBase
            {
                ToUserName   = XmlHelper.GetXmlNode(res, "ToUserName").Trim(),
                FromUserName = XmlHelper.GetXmlNode(res, "FromUserName").Trim(),
                MsgType      = responseMsgType,
                CreateTime   = TimeStampHelper.GetDateTime(int.Parse(XmlHelper.GetXmlNode(res, "CreateTime").Trim()))
            };

            return(resBase);
        }
Esempio n. 9
0
        /// <summary>
        /// 获取请求 Authorization 头部的授权字符串
        /// </summary>
        /// <returns></returns>
        public string GetAuthorizationString()
        {
            var(startTime, endTme, timeStr) = TimeStampHelper.Get();

            if (EndTime > startTime)
            {
                return(AuthorizationString);
            }

            EndTime             = endTme;
            AuthorizationString = CreateAuthorizationString(SecretId, SecretKey, timeStr);

            return(AuthorizationString);
        }
Esempio n. 10
0
        /// <summary>
        ///  从 Xml 转换 RequestMessage 对象的处理(只是创建实例,不填充数据)
        /// </summary>
        /// <param name="requestMsgType"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType requestMsgType, XDocument doc)
        {
            var res = doc.ToString();
            IRequestMessageBase reqBase = new RequestMessageBase
            {
                ToUserName   = XmlHelper.GetXmlNode(res, "ToUserName").Trim(),
                FromUserName = XmlHelper.GetXmlNode(res, "FromUserName").Trim(),
                Encrypt      = XmlHelper.GetXmlNode(res, "Encrypt").Trim(),
                MsgId        = Int64.Parse(XmlHelper.GetXmlNode(res, "MsgId")),
                MsgType      = requestMsgType,
                CreateTime   = TimeStampHelper.GetDateTime(int.Parse(XmlHelper.GetXmlNode(res, "CreateTime").Trim()))
            };

            //ApiLoghelper.Info("reqBase", JsonHelper.ObjectToJSON(reqBase));

            return(reqBase);
        }
Esempio n. 11
0
        private async Task <TrmrkActionResult <DriveItemOp> > CreateMultipleEntriesAsync(
            string parentFolderId,
            List <Tuple <Func <string[], int, string, string>, string, Action <string> > > fileNameFactoriesList)
        {
            var actionResult = await ExecuteCoreAsync(async() =>
            {
                var factoriesList = fileNameFactoriesList.Select(
                    tuple => new Tuple <Func <string[], int, string, string>, string, Func <string, int, Task <DriveItemOp> > >(
                        tuple.Item1, tuple.Item2, async(name, idx) =>
                {
                    string path = Path.Combine(parentFolderId, name);
                    tuple.Item3(path);

                    DateTime now  = DateTime.Now;
                    string nowStr = TimeStampHelper.TmStmp(now, true, TimeStamp.Seconds);

                    return(new DriveItemOp
                    {
                        Id = path,
                        Name = name,
                        FileNameExtension = Path.GetExtension(name),
                        CreationTimeStr = nowStr,
                        LastAccessTimeStr = nowStr,
                        LastWriteTimeStr = nowStr
                    });
                })).ToList();

                var parentDirInfo = new DirectoryInfo(parentFolderId);

                var existingEntriesArr = parentDirInfo.EnumerateFileSystemInfos()
                                         .Select(ent => ent.Name).ToArray();

                var result = await base.CreateMultipleEntriesAsync(
                    existingEntriesArr,
                    factoriesList);

                return(new TrmrkActionResult <DriveItemOp>(true, result));
            },
                                                      exc => DriveItemDefaultExceptionHandler(exc).WithHelper(
                                                          result => new TrmrkActionResult <DriveItemOp>(
                                                              false, null, result.ErrorViewModel, result.HttpStatusCode)));

            return(actionResult);
        }
        private Bill SaveBillToDrive()
        {
            var billObj = new Bill();

            try
            {
                string googleDrivePath = ConfigManager.GetConfigValue("GoogleDrivePath");
                string billSavePath    = ConfigManager.GetConfigValue("BillSavePath");
                _billSavePath = googleDrivePath + billSavePath + TimeStampHelper.GetDateStamp();
                _fileName     = "/" + TimeStampHelper.GetDateTimeStamp() + ".pdf";
                if (!Directory.Exists(_billSavePath))
                {
                    Directory.CreateDirectory(_billSavePath);
                }
                FileStream flStrm = new FileStream(_billSavePath + _fileName, FileMode.Create);

                //Header
                iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(Directory.GetCurrentDirectory().Replace(@"bin\Debug", "") + @"\image\logo.jpg");
                jpg.ScaleToFit(50f, 37f);
                jpg.SpacingBefore = 0f;
                jpg.SpacingAfter  = 0f;
                jpg.Alignment     = Element.ALIGN_CENTER;

                var para = new Paragraph();
                para.MultipliedLeading = 1;
                para.SpacingBefore     = 0;
                para.SpacingAfter      = 0;
                if (_isShowLogoInBill)
                {
                    para.Add(jpg);
                }

                para.Add(new Chunk(lblFpsDealer.Text + " || "
                                   + lblFPSCodeNo.Text + " || "
                                   + lblAddrLn1.Text + " || "
                                   + lblAddrLn2.Text + " || "
                                   + lblAddrLn3.Text + Environment.NewLine
                                   , CalculateFont(_billNotificationTxtSize)));

                //BillCounter
                PdfPTable billCounterTable = new PdfPTable(2)
                {
                    WidthPercentage = 100
                };
                billCounterTable.SpacingBefore = 0f;
                billCounterTable.SpacingAfter  = 0f;

                //billcounter
                _billObj.BillNumber       = _totalBillCounter.ToString();
                _billObj.BillSerialNumber = _dayBillCounterOrCount.ToString();

                PdfPCell billCounterTableCell1 = new PdfPCell(new Phrase(lblBillNoText.Text + "  " + lblCashMemoCounter.Text
                                                                         , CalculateFont(_billHeaderTxtSize)));
                //billCounterTableCell1.Colspan = 1;
                billCounterTableCell1.HorizontalAlignment = Element.ALIGN_LEFT;
                billCounterTableCell1.BorderWidth         = 0f;

                //Serialnumber or DailyCounter
                PdfPCell billCounterTableCell2 = new PdfPCell(new Phrase(lblSerialText.Text + "  " + lblSerialNumber.Text
                                                                         , CalculateFont(_billHeaderTxtSize)));
                //billCounterTableCell2.Colspan = 1;
                billCounterTableCell2.HorizontalAlignment = Element.ALIGN_RIGHT;
                billCounterTableCell2.BorderWidth         = 0f;

                billCounterTable.Rows.Add(new PdfPRow(new PdfPCell[] { billCounterTableCell1, billCounterTableCell2 }));

                //Date

                PdfPCell billCounterTableCell3 = new PdfPCell(new Phrase(lblDt.Text
                                                                         , CalculateFont(_billHeaderTxtSize)));
                //billCounterTableCell3.Colspan = 1;
                billCounterTableCell3.HorizontalAlignment = Element.ALIGN_LEFT;
                billCounterTableCell3.BorderWidth         = 0f;

                //Fortnight
                _billObj.Fortnight = TimeStampHelper.GetFortNight(lblDt.Text);

                PdfPCell billCounterTableCell4 = new PdfPCell(new Phrase("( " + TimeStampHelper.GetFortNightString(lblDt.Text) + " ) "
                                                                         , CalculateFont(_billHeaderTxtSize)));
                //billCounterTableCell3.Colspan = 1;
                billCounterTableCell4.HorizontalAlignment = Element.ALIGN_RIGHT;
                billCounterTableCell4.BorderWidth         = 0f;

                billCounterTable.Rows.Add(new PdfPRow(new PdfPCell[] { billCounterTableCell3, billCounterTableCell4 }));

                billCounterTable.CompleteRow();
                para.Add(billCounterTable);

                //Members
                _billObj.TotalCardServed = _memberCount;

                para.Add(new Chunk(Environment.NewLine + "Number of Unit : " + _memberCount
                                   , CalculateFont(_billPartHeadingTxtSize)));

                int totalCards        = grdVwMembers.Rows.Count;
                int totalFamilyMember = grdVwMembers.Rows.Count;

                PdfPTable memberTable = new PdfPTable(1)
                {
                    WidthPercentage = 100
                };
                memberTable.SpacingBefore = 0f;
                memberTable.SpacingAfter  = 0f;
                //memberTable.TotalWidth = 226f;
                //memberTable.LockedWidth = true;
                string numbers = "";

                foreach (DataGridViewRow item in grdVwMembers.Rows)
                {
                    RationCardDetail lnItem = (RationCardDetail)item.DataBoundItem;
                    numbers += ", " + lnItem.Number;
                }
                _billObj.RationcardNumbers = numbers.TrimStart(',', ' ');

                PdfPCell memberCell2 = new PdfPCell(new Phrase(numbers.TrimStart(',', ' ') + Environment.NewLine + Environment.NewLine
                                                               , CalculateFont(_billTxtSize)));

                memberCell2.Colspan             = 1;
                memberCell2.HorizontalAlignment = Element.ALIGN_LEFT;
                memberCell2.BorderWidth         = 0f;
                memberTable.AddCell(memberCell2);
                para.Add(memberTable);

                //Items
                //para.Add(new Chunk(lblItemsText.Text
                //    , new iTextSharp.text.Font(BaseFont.CreateFont(@"C:\Windows\Fonts\ARLRDBD.TTF", BaseFont.IDENTITY_H,
                //        BaseFont.EMBEDDED), _billPartHeadingTxtSize)));

                PdfPTable itemTable = new PdfPTable(21)
                {
                    WidthPercentage = 100
                };
                itemTable.SpacingBefore = 0f;
                itemTable.SpacingAfter  = 0f;
                itemTable.TotalWidth    = 226f;
                itemTable.LockedWidth   = true;

                //HeaderCell
                PdfPCell headerCell0 = new PdfPCell(new Phrase("SlNo."
                                                               , CalculateFont(_billTxtSize)));
                headerCell0.Colspan             = 2;
                headerCell0.HorizontalAlignment = Element.ALIGN_LEFT;
                headerCell0.BorderWidth         = 0f;
                itemTable.AddCell(headerCell0);

                PdfPCell headerCell1 = new PdfPCell(new Phrase("Commodity"
                                                               , CalculateFont(_billTxtSize)));
                headerCell1.Colspan             = 7;
                headerCell1.HorizontalAlignment = Element.ALIGN_LEFT;
                headerCell1.BorderWidth         = 0f;
                itemTable.AddCell(headerCell1);

                PdfPCell headerCell2 = new PdfPCell(new Phrase("Quantity"
                                                               , CalculateFont(_billTxtSize)));
                headerCell2.Colspan             = 4;
                headerCell2.HorizontalAlignment = Element.ALIGN_LEFT;
                headerCell2.BorderWidth         = 0f;
                itemTable.AddCell(headerCell2);

                PdfPCell headerCell3 = new PdfPCell(new Phrase("Rate"
                                                               , CalculateFont(_billTxtSize)));
                headerCell3.Colspan             = 4;
                headerCell3.HorizontalAlignment = Element.ALIGN_LEFT;
                headerCell3.BorderWidth         = 0f;
                itemTable.AddCell(headerCell3);

                PdfPCell headerCell4 = new PdfPCell(new Phrase("Price"
                                                               , CalculateFont(_billTxtSize)));
                headerCell4.Colspan             = 4;
                headerCell4.HorizontalAlignment = Element.ALIGN_LEFT;
                headerCell4.BorderWidth         = 0f;
                itemTable.AddCell(headerCell4);

                //PdfPCell headerCell5 = new PdfPCell(new Phrase("Discount"
                //   , CalculateFont(_billTxtSize)));
                //headerCell5.Colspan = 2;
                //headerCell5.HorizontalAlignment = Element.ALIGN_LEFT;
                //headerCell5.BorderWidth = 0f;
                //itemTable.AddCell(headerCell5);

                int itemCount = 0;

                foreach (DataGridViewRow item in grdVwItems.Rows)
                {
                    Product lnItem = (Product)item.DataBoundItem;
                    //_billObj.BillDetails.Add(new BillDetails { ProductsSold = lnItem });

                    PdfPCell itemCell0 = new PdfPCell(new Phrase((itemCount + 1).ToString()
                                                                 , CalculateFont(_billTxtSize)));
                    itemCell0.Colspan             = 2;
                    itemCell0.HorizontalAlignment = Element.ALIGN_LEFT;
                    itemCell0.BorderWidth         = 0f;
                    itemTable.AddCell(itemCell0);

                    PdfPCell itemCell1 = new PdfPCell(new Phrase(lnItem.Name
                                                                 , CalculateFont(_billTxtSize)));
                    itemCell1.Colspan             = 7;
                    itemCell1.HorizontalAlignment = Element.ALIGN_LEFT;
                    itemCell1.BorderWidth         = 0f;
                    itemTable.AddCell(itemCell1);

                    PdfPCell itemCell2 = new PdfPCell(new Phrase(lnItem.ConsumptionQuantityToDisplay
                                                                 , CalculateFont(_billTxtSize)));
                    itemCell2.Colspan             = 4;
                    itemCell2.HorizontalAlignment = Element.ALIGN_LEFT;
                    itemCell2.BorderWidth         = 0f;
                    itemTable.AddCell(itemCell2);

                    PdfPCell itemCell3 = new PdfPCell(new Phrase(lnItem.SellingRateInCurrentUomDisplay
                                                                 , CalculateFont(_billTxtSize)));
                    itemCell3.Colspan             = 4;
                    itemCell3.HorizontalAlignment = Element.ALIGN_LEFT;
                    itemCell3.BorderWidth         = 0f;
                    itemTable.AddCell(itemCell3);

                    PdfPCell itemCell4 = new PdfPCell(new Phrase(lnItem.PriceToDisplay
                                                                 , CalculateFont(_billTxtSize)));
                    itemCell4.Colspan             = 4;
                    itemCell4.HorizontalAlignment = Element.ALIGN_LEFT;
                    itemCell4.BorderWidth         = 0f;
                    itemTable.AddCell(itemCell4);

                    //PdfPCell itemCell5 = new PdfPCell(new Phrase(lnItem.DiscountToDisplay
                    //   , CalculateFont(_billTxtSize)));
                    //itemCell5.Colspan = 2;
                    //itemCell5.HorizontalAlignment = Element.ALIGN_LEFT;
                    //itemCell5.BorderWidth = 0f;
                    //itemTable.AddCell(itemCell5);

                    itemCount++;
                }
                para.Add(itemTable);

                //Devider
                para.Add(new Chunk("         ---------------------------------------------------------------------------------------------    "
                                   , CalculateFont(_billTxtSize)));

                float convertedNum = 0;
                //Total Price
                PdfPTable priceTable = new PdfPTable(2)
                {
                    WidthPercentage = 80
                };
                priceTable.SpacingBefore = 0f;
                priceTable.SpacingAfter  = 0f;

                //Total
                _billObj.TotalPrice = float.TryParse(lblCustomerToPayRs.Text, out convertedNum) ? convertedNum : 0;

                PdfPCell priceCell1 = new PdfPCell(new Phrase(lblTotal.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell1.Colspan             = 1;
                priceCell1.HorizontalAlignment = Element.ALIGN_LEFT;
                priceCell1.BorderWidth         = 0f;

                PdfPCell priceCell2 = new PdfPCell(new Phrase(lblCustomerToPayRs.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell2.Colspan             = 1;
                priceCell2.HorizontalAlignment = Element.ALIGN_RIGHT;
                priceCell2.BorderWidth         = 0f;

                priceTable.Rows.Add(new PdfPRow(new PdfPCell[] { priceCell1, priceCell2 }));

                //Total Roundedoff
                _billObj.TotalRoundedOff = float.TryParse(lblTotalRsRounded.Text, out convertedNum) ? convertedNum : 0;

                PdfPCell priceCell3 = new PdfPCell(new Phrase(lblTotalRoundedOff.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell3.Colspan             = 1;
                priceCell3.HorizontalAlignment = Element.ALIGN_LEFT;
                priceCell3.BorderWidth         = 0f;

                PdfPCell priceCell4 = new PdfPCell(new Phrase(lblTotalRsRounded.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell4.Colspan             = 1;
                priceCell4.HorizontalAlignment = Element.ALIGN_RIGHT;
                priceCell4.BorderWidth         = 0f;

                priceTable.Rows.Add(new PdfPRow(new PdfPCell[] { priceCell3, priceCell4 }));

                //Discount
                _billObj.TotalDiscount = float.TryParse(lblDiscount.Text, out convertedNum) ? convertedNum : 0;

                //PdfPCell priceCell5 = new PdfPCell(new Phrase(lblDiscountText.Text
                //       , CalculateFont(_billPartHeadingTxtSize)));
                //priceCell5.Colspan = 1;
                //priceCell5.HorizontalAlignment = Element.ALIGN_LEFT;
                //priceCell5.BorderWidth = 0f;

                //PdfPCell priceCell6 = new PdfPCell(new Phrase(lblDiscount.Text
                //       , CalculateFont(_billPartHeadingTxtSize)));
                //priceCell6.Colspan = 1;
                //priceCell6.HorizontalAlignment = Element.ALIGN_RIGHT;
                //priceCell6.BorderWidth = 0f;

                //priceTable.Rows.Add(new PdfPRow(new PdfPCell[] { priceCell5, priceCell6 }));

                //CustomerPaid
                _billObj.CustomerPaid = float.TryParse(txtCustPaid.Text, out convertedNum) ? convertedNum : 0;

                PdfPCell priceCell7 = new PdfPCell(new Phrase(lblCustomerPaid.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell7.Colspan             = 1;
                priceCell7.HorizontalAlignment = Element.ALIGN_LEFT;
                priceCell7.BorderWidth         = 0f;

                PdfPCell priceCell8 = new PdfPCell(new Phrase(txtCustPaid.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell8.Colspan             = 1;
                priceCell8.HorizontalAlignment = Element.ALIGN_RIGHT;
                priceCell8.BorderWidth         = 0f;

                priceTable.Rows.Add(new PdfPRow(new PdfPCell[] { priceCell7, priceCell8 }));

                //Balance
                _billObj.BalanceReturn = float.TryParse(lblBalRs.Text, out convertedNum) ? convertedNum : 0;

                PdfPCell priceCell9 = new PdfPCell(new Phrase(lblBalance.Text
                                                              , CalculateFont(_billPartHeadingTxtSize)));
                priceCell9.Colspan             = 1;
                priceCell9.HorizontalAlignment = Element.ALIGN_LEFT;
                priceCell9.BorderWidth         = 0f;

                PdfPCell priceCell10 = new PdfPCell(new Phrase(lblBalRs.Text
                                                               , CalculateFont(_billPartHeadingTxtSize)));
                priceCell10.Colspan             = 1;
                priceCell10.HorizontalAlignment = Element.ALIGN_RIGHT;
                priceCell10.BorderWidth         = 0f;

                priceTable.Rows.Add(new PdfPRow(new PdfPCell[] { priceCell9, priceCell10 }));

                priceTable.CompleteRow();
                para.Add(priceTable);

                //Disclaimer
                para.Add(new Chunk("         ----------------------------------------------------------------------------------------------    "
                                   + Environment.NewLine + "N.B. Please check your item count and quantity, compare with bill and count your cash and balance before leaving the counter."
                                   , CalculateFont(_billNotificationTxtSize)));


                para.Add(new Chunk(Environment.NewLine));

                _chnkHeight = 0;
                _chnkWidth  = Utilities.MillimetersToPoints(80);
                while (true)
                {
                    _chnkHeight += 10;
                    iTextSharp.text.Document tmpPdfDoc = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(_chnkWidth, _chnkHeight), 0, 0, 0, 0);
                    PdfWriter tmpPdfWriter             = PdfWriter.GetInstance(tmpPdfDoc, flStrm);
                    tmpPdfDoc.Open();
                    tmpPdfDoc.Add(para);
                    if (tmpPdfWriter.PageNumber == 1)
                    {
                        tmpPdfWriter.CloseStream = false;
                        tmpPdfDoc.Close();
                        tmpPdfWriter.Close();
                        break;
                    }
                    tmpPdfWriter.CloseStream = false;
                    tmpPdfDoc.Close();
                    tmpPdfWriter.Close();
                }

                iTextSharp.text.Rectangle pgSize = new iTextSharp.text.Rectangle(_chnkWidth, _chnkHeight);
                iTextSharp.text.Document  pdfDoc = new iTextSharp.text.Document(pgSize, 0, 0, 0, 0);
                PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, flStrm);
                pdfDoc.Open();
                pdfDoc.Add(para);
                pdfWriter.CloseStream = true;

                pdfDoc.Close();
                flStrm.Close();
                pdfWriter.Close();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);
            }
            return(_billObj);
        }
Esempio n. 13
0
        public Response Login(LoginVO vo)
        {
            if (vo.Phone == "administrator")
            {
                //反转字符串
                var array = vo.Noncestr.ToCharArray();
                Array.Reverse(array);
                var key = new string(array);
                // md5加密
                var    md5     = new MD5CryptoServiceProvider();
                byte[] output1 = md5.ComputeHash(Encoding.Default.GetBytes(key));
                var    keyStr  = BitConverter.ToString(output1).Replace("-", "").ToLower();

                var ivChar = keyStr.ToCharArray();
                Array.Reverse(ivChar);
                var    iv      = new string(ivChar);
                byte[] output2 = md5.ComputeHash(Encoding.Default.GetBytes(iv));
                var    ivStr   = BitConverter.ToString(output2).Replace("-", "").ToLower().Substring(0, 16);
                //密码解密
                var password = AES256Helper.Decrypt(vo.Password, Encoding.Default.GetBytes(keyStr), Encoding.Default.GetBytes(ivStr));

                var isSuccess = BouncyCastleHashing.ValidatePassword(password, ADMIN_DEFAULT_SALT, ADMIN_DEFAULT_PWD);
                if (isSuccess)
                {
                    var token = JwtHelper.GenerateToken(-1, "administrator", 2);
                    var user  = new
                    {
                        userId      = -1,
                        userName    = "******",
                        channelName = "系统管理员",
                        roleId      = -1,
                        channelId   = -1,
                        XCXOPENID   = "-1",
                        auth        = AuthorityService.GenerateVueMenu(0, true)
                    };
                    //生成keyStr
                    var    nonceStr = TimeStampHelper.ToTimeStamp(DateTime.Now) / 50 * 90;
                    byte[] output3  = md5.ComputeHash(Encoding.UTF8.GetBytes(nonceStr.ToString()));
                    var    keyStr2  = BitConverter.ToString(output3).Replace("-", "").ToLower();
                    //反转keyStr 生成 ivStr
                    var ivChar2 = keyStr2.ToCharArray();
                    Array.Reverse(ivChar2);
                    var    iv2     = new string(ivChar2);
                    byte[] output4 = md5.ComputeHash(Encoding.UTF8.GetBytes(iv2));
                    var    ivStr2  = BitConverter.ToString(output4).Replace("-", "").ToLower().Substring(0, 16);
                    //加密
                    var payload = AES256Helper.Encrypt(JsonConvert.SerializeObject(user), Encoding.UTF8.GetBytes(keyStr2), Encoding.UTF8.GetBytes(ivStr2));
                    return(new Response
                    {
                        Result = new
                        {
                            token,
                            payload,
                            noncestr = nonceStr,
                            vueRouter = AuthorityService.GenerateVueRouter(0, true)
                        }
                    });
                }
                else
                {
                    return(new Response
                    {
                        Errcode = ExceptionHelper.UNKNOWN,
                        Errmsg = "密码错误!"
                    });
                }
            }
            else
            {
                dynamic staff = StaffService.QuerySystemUserByPhoneNumber(vo.Phone);
                if (staff == null)
                {
                    return(new Response
                    {
                        Errcode = 10000,
                        Errmsg = "用户不存在或已被禁用"
                    });
                }
                else
                {
                    //反转字符串
                    var array = vo.Noncestr.ToCharArray();
                    Array.Reverse(array);
                    var key = new string(array);
                    // md5加密
                    var    md5     = new MD5CryptoServiceProvider();
                    byte[] output1 = md5.ComputeHash(Encoding.Default.GetBytes(key));
                    var    keyStr  = BitConverter.ToString(output1).Replace("-", "").ToLower();

                    var ivChar = keyStr.ToCharArray();
                    Array.Reverse(ivChar);
                    var    iv      = new string(ivChar);
                    byte[] output2 = md5.ComputeHash(Encoding.Default.GetBytes(iv));
                    var    ivStr   = BitConverter.ToString(output2).Replace("-", "").ToLower().Substring(0, 16);
                    //密码解密
                    var password = AES256Helper.Decrypt(vo.Password, Encoding.Default.GetBytes(keyStr), Encoding.Default.GetBytes(ivStr));

                    var isSuccess = BouncyCastleHashing.ValidatePassword(password, (string)staff["SALT"], (string)staff["PASSWORD"]);
                    if (isSuccess)
                    {
                        var token = JwtHelper.GenerateToken((int)staff["FID"], (string)staff["FJOB"], 2);
                        var user  = new
                        {
                            userId          = (int)staff["FID"],
                            userName        = (string)staff["FNAME"],
                            channelName     = (string)staff["CHANNELNAME"],
                            channelCode     = (string)staff["FCHANNELCODE"],
                            channelId       = (int)staff["FCHANNELID"],
                            customerId      = (int)staff["FCUSTOMERID"],
                            channelTypeId   = (int)staff["FCHANNELTYPEID"],
                            channelTypeName = (string)staff["FCHANNELTYPENAME"],
                            roleId          = (int)staff["FROLEID"],
                            modules         = BaseDataDao.QueryRoleHasModules((int)staff["FROLEID"]).Select(x => x.FNAME).ToList(),
                            pers            = BaseDataDao.QueryRoleHasPermissions((int)staff["FROLEID"]),
                            auth            = AuthorityService.GenerateVueMenu((int)staff["FROLEID"], false),
                            XCXOPENID       = (string)staff["XCXOPENID"],
                            FMOBILE         = (string)staff["FMOBILE"]
                        };
                        //生成keyStr
                        var    nonceStr = TimeStampHelper.ToTimeStamp(DateTime.Now) / 50 * 90;
                        byte[] output3  = md5.ComputeHash(Encoding.UTF8.GetBytes(nonceStr.ToString()));
                        var    keyStr2  = BitConverter.ToString(output3).Replace("-", "").ToLower();
                        //反转keyStr 生成 ivStr
                        var ivChar2 = keyStr2.ToCharArray();
                        Array.Reverse(ivChar2);
                        var    iv2     = new string(ivChar2);
                        byte[] output4 = md5.ComputeHash(Encoding.UTF8.GetBytes(iv2));
                        var    ivStr2  = BitConverter.ToString(output4).Replace("-", "").ToLower().Substring(0, 16);
                        //加密
                        var payload = AES256Helper.Encrypt(JsonConvert.SerializeObject(user), Encoding.UTF8.GetBytes(keyStr2), Encoding.UTF8.GetBytes(ivStr2));
                        return(new Response
                        {
                            Result = new
                            {
                                token,
                                payload,
                                noncestr = nonceStr,
                                vueRouter = AuthorityService.GenerateVueRouter(user.roleId, false)
                            }
                        });
                    }
                    else
                    {
                        return(new Response
                        {
                            Errcode = ExceptionHelper.UNKNOWN,
                            Errmsg = "密码错误!"
                        });
                    }
                }
            }
        }
Esempio n. 14
0
        public static int Auto(User Sender, string Msg)
        {
            DatabaseHelper dbh = new DatabaseHelper(MainPlugin.MainDatabase);
            DataTable      dt  = dbh.Execute("select * from games where case_text = '" + Msg.Replace("-", "横").Replace("\"", "双引号").Replace("'", "单引号") + "'");

            if (dt.Rows.Count == 0)
            {
                dbh.Close();
                return(0);
            }
            long start_time, end_time;

            long.TryParse(dt.Rows[0]["start_time"].ToString(), out start_time);
            long.TryParse(dt.Rows[0]["end_time"].ToString(), out end_time);
            if (start_time > TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
            {
                return(0);
            }
            if (end_time < TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
            {
                return(0);
            }
            string obj = dt.Rows[0]["bouns_random"].ToString();
            int    bounsRandom = 0, faildRandom = 0;

            int.TryParse(obj, out bounsRandom);

            obj = dt.Rows[0]["faild_random"].ToString();
            int.TryParse(obj, out faildRandom);

            if (faildRandom >= new Random().Next(1, 101))
            {
                string faild_text = dt.Rows[0]["faild_text"].ToString();
                faild_text = faild_text.Replace("<use_num>", dt.Rows[0]["use_num"].ToString())
                             .Replace("<at>", Sender.AT)
                             .Replace("\\n", "\n");
                Sender.Send(faild_text);
                return(1);
            }

            SqliteHelper.SetConnectionString(MainPlugin.MainDatabase, "");
            SqliteHelper helper = new SqliteHelper();

            helper.ExecuteReader("update games set use_num = use_num + 1 where case_text = '" + Msg.Replace("-", "横").Replace("\"", "双引号").Replace("'", "单引号") + "'", new SQLiteParameter()
            {
            });

            if (bounsRandom >= new Random().Next(1, 101))
            {
                string    toDoJson = dt.Rows[0]["to_do_json"].ToString();
                ToDoModel model    = ToDoModelHelper.GetModel(toDoJson);
                Sender.Loveca        = Sender.Loveca + model.loveca;
                Sender.MandarinPoint = Sender.MandarinPoint + model.mardarin_point;
                Sender.CouponTicket  = Sender.CouponTicket + model.coupon_ticket;
                Sender.AtBanCard     = Sender.AtBanCard + model.at_ban_card;
                Sender.RandomBanCard = Sender.RandomBanCard + model.random_ban_card;
                //Sender.NoNormalScoutTicket = Sender.NoNormalScoutTicket + model.no_normal_scout_ticket;
                Sender.ScoutTicket       = Sender.ScoutTicket + model.scout_ticket;
                Sender.ElevenScoutTicket = Sender.ElevenScoutTicket + model.eleven_scout_ticket;
                string back_text_bouns = dt.Rows[0]["back_text_bouns"].ToString();
                back_text_bouns = back_text_bouns.Replace("<loveca>", model.loveca.ToString())
                                  .Replace("<point>", model.mardarin_point.ToString())
                                  .Replace("<coupon_ticket>", model.coupon_ticket.ToString())
                                  .Replace("<at_ban_card>", model.at_ban_card.ToString())
                                  .Replace("<random_ban_card>", model.random_ban_card.ToString())
                                  //.Replace("<no_normal_scout_ticket>", model.no_normal_scout_ticket.ToString())
                                  .Replace("<scout_ticket>", model.scout_ticket.ToString())
                                  .Replace("<eleven_scout_ticket>", model.eleven_scout_ticket.ToString())
                                  .Replace("<use_num>", dt.Rows[0]["use_num"].ToString())
                                  .Replace("<at>", Sender.AT)
                                  .Replace("\\n", "\n");
                Sender.Send(back_text_bouns);
                return(1);
            }
            string back_text = dt.Rows[0]["back_text"].ToString();

            back_text = back_text.Replace("<use_num>", dt.Rows[0]["use_num"].ToString())
                        .Replace("<at>", Sender.AT)
                        .Replace("\\n", "\n");
            Sender.Send(back_text);
            return(1);
        }
Esempio n. 15
0
        public static int Auto(User Sender,string Msg)
        {
            if(Msg == "积分商店")
            {
                DatabaseHelper dbh = new DatabaseHelper(MainPlugin.MainDatabase);
                DataTable dt = dbh.Execute("select * from mardarin_store");
                if(dt.Rows.Count == 0)
                {
                    Sender.Send(Sender.AT + "商店暂时没有东西可以卖啦Orz");
                    dbh.Close();
                    return 1;
                }
                string toSend = " --- 积分商店 --- \n" + 
                                " ID 价格   物品";
                foreach(DataRow dr in dt.Rows)
                {
                    int num = 0;
                    string obj = "";
                    int.TryParse(dr["start_time"].ToString(), out num);
                    if(num > TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                    {
                        continue;
                    }
                    int.TryParse(dr["end_time"].ToString(), out num);
                    if (num < TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                    {
                        continue;
                    }
                    toSend = toSend + "\n" + dr["sid"].ToString() + " " + dr["use_points"].ToString() + "Point " + dr["title"].ToString();
                }

                Sender.Send(toSend + "\n请回复 /详情 商品ID 来查看详情");
                dbh.Close();
                return 1;
            }
            else if(Msg.IndexOf("购买") == 0)
            {
                int num = 0;
                string obj = "";
                obj = Msg.Replace("购买","");
                int.TryParse(obj, out num);
                if(num <= 0)
                {
                    Sender.Send(Sender.AT + "不存在序号为" + obj + "的商品!");
                    return 1;
                }
                DatabaseHelper dbh = new DatabaseHelper(MainPlugin.MainDatabase);
                DataTable dt = dbh.Execute("select * from mardarin_store where sid = " + num);
                if (dt.Rows.Count == 0)
                {
                    Sender.Send(Sender.AT + "不存在序号为" + obj + "的商品!");
                    dbh.Close();
                    return 1;
                }
                int.TryParse(dt.Rows[0]["start_time"].ToString(), out num);
                if (num > TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                {
                    Sender.Send(Sender.AT + "该商品未上架!");
                    return 1;
                }
                int.TryParse(dt.Rows[0]["end_time"].ToString(), out num);
                if (num < TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                {
                    Sender.Send(Sender.AT + "该商品已下架!");
                    return 1;
                }
                obj = dt.Rows[0]["use_points"].ToString();
                int.TryParse(obj, out num);
                if (Sender.MandarinPoint < num)
                {
                    Sender.Send(Sender.AT + "你所持的蜜柑Points不足够买这个东西!");
                    dbh.Close();
                    return 1;
                }
                Sender.MandarinPoint = Sender.MandarinPoint - num;
                string toDoJson = dt.Rows[0]["to_do_json"].ToString();
                string sendMsg = dt.Rows[0]["on_buyed_send_msg"].ToString();
                ToDoModel model = ToDoModelHelper.GetModel(toDoJson);
                Sender.Loveca = Sender.Loveca + model.loveca;
                Sender.MandarinPoint = Sender.MandarinPoint + model.mardarin_point;
                Sender.CouponTicket = Sender.CouponTicket + model.coupon_ticket;
                Sender.AtBanCard = Sender.AtBanCard + model.at_ban_card;
                Sender.RandomBanCard = Sender.RandomBanCard + model.random_ban_card;
                //Sender.NoNormalScoutTicket = Sender.NoNormalScoutTicket + model.no_normal_scout_ticket;
                Sender.ScoutTicket = Sender.ScoutTicket + model.scout_ticket;
                Sender.ElevenScoutTicket = Sender.ElevenScoutTicket + model.eleven_scout_ticket;

                Sender.Send(sendMsg);
                dbh.Close();
            }
            else if(Msg.IndexOf("详情") == 0)
            {
                int num = 0;
                string obj = "";
                obj = Msg.Replace("详情", "");
                int.TryParse(obj, out num);
                if (num <= 0)
                {
                    Sender.Send(Sender.AT + "不存在序号为" + obj + "的商品!");
                    return 1;
                }
                DatabaseHelper dbh = new DatabaseHelper(MainPlugin.MainDatabase);
                DataTable dt = dbh.Execute("select * from mardarin_store where sid = " + num);
                if (dt.Rows.Count == 0)
                {
                    Sender.Send(Sender.AT + "不存在序号为" + obj + "的商品!");
                    dbh.Close();
                    return 1;
                }
                obj = dt.Rows[0]["use_points"].ToString();
                int.TryParse(obj, out num);
                string toSendMsg = " --- 积分商店 --- ";
                toSendMsg = toSendMsg + "\n" + dt.Rows[0]["title"].ToString() + "\n" + dt.Rows[0]["description"].ToString().Replace("\\n","\n")
                    + "\n价格:" + num + "Points";
                int.TryParse(dt.Rows[0]["start_time"].ToString(), out num);
                if (num > TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                {
                    toSendMsg = toSendMsg + "\n该商品暂未上架";
                }
                int.TryParse(dt.Rows[0]["end_time"].ToString(), out num);
                if (num < TimeStampHelper.ConvertDateTimeInt(DateTime.Now))
                {
                    toSendMsg = toSendMsg + "\n该商品现已下架";
                }
                else
                {
                    toSendMsg = toSendMsg + "\n回复 /购买" + dt.Rows[0]["sid"].ToString() + " 来购买";
                }

                Sender.Send(toSendMsg);
                dbh.Close();
            }
            return 0;
        }
Esempio n. 16
0
        /// <summary>
        /// 开始处理
        /// </summary>
        /// <returns></returns>
        public int Run()
        {
            try
            {
                // 全群发送同一条信息
                if (Msg.IndexOf("#全群通知") == 0)
                {
                    if (Sender.QQ == -10000)
                    {
                        IEnumerable <GroupInfo> groups = ExtrasCoolApiExtensions.GetGroupList(MainPlugin.CoolQApi);
                        string Broadcast = Msg.Replace("#全群通知", "");
                        foreach (GroupInfo group in groups)
                        {
                            User system = new User(-100000, new UserSource(UserSource.GroupMessage, new Group(group.GroupNumber), 0));
                            system.Send(Broadcast);
                        }
                        return(1);
                    }
                }

                // 强制回收垃圾
                if (Msg.IndexOf("#回收垃圾") == 0)
                {
                    if (Sender.QQ == 1813274096)
                    {
                        GC.Collect();
                        Sender.Send("void GC.Collect();成功");
                        return(1);
                    }
                }

                // 强制重新载入全部用户
                if (Msg.IndexOf("#重载用户") == 0)
                {
                    if (Sender.QQ == 1813274096)
                    {
                        IEnumerable <GroupInfo> info = ExtrasCoolApiExtensions.GetGroupList(MainPlugin.CoolQApi);
                        int groups = 0, users = 0;
                        foreach (GroupInfo inf in info)
                        {
                            Group gp = new Group(inf.GroupNumber);
                            ModelWithSourceString <IEnumerable <GroupMemberInfo> > members = CoolApiExtensions.GetGroupMemberList(MainPlugin.CoolQApi, inf.GroupNumber);
                            foreach (GroupMemberInfo i in members.Model)
                            {
                                User usr = new User(i.Number, new UserSource(UserSource.GroupMessage, new Group(gp.QQId), 0));
                                users++;
                            }
                            groups++;
                        }
                        GC.Collect();
                        Sender.Send("已经重新载入了" + groups + "个群," + users + "个QQ。");
                        return(1);
                    }
                }

                // 如果被封禁则不处理
                if (Sender.Source.Group != null)
                {
                    if (Sender.Source.Group.IsBaned)
                    {
                        return(1);
                    }
                }
                if (Sender.IsBaned)
                {
                    return(1);
                }
                // 你群如果关了千歌不处理
                if (Sender.Source.Group != null)
                {
                    if (!Sender.Source.Group.IsEnable)
                    {
                        if (rcc(Msg) != "开千歌")
                        {
                            return(1);
                        }
                    }
                }

                // 菜单
                if (Menu.AutoSend(rcc(Msg), Sender) != 0)
                {
                    return(1);
                }

                // 开启千歌
                if (rcc(Msg) == "开千歌")
                {
                    ModelWithSourceString <GroupMemberInfo> info = CoolApiExtensions.GetGroupMemberInfoV2(MainPlugin.CoolQApi, Sender.Source.Group.QQId, Sender.QQ, false);
                    if (info.Model.Authority == "群主" || info.Model.Authority == "管理员" || Sender.QQ == 1813274096)
                    {
                        Sender.Send(Sender.AT + "千歌已开启");
                        Sender.Source.Group.IsEnable = true;
                        return(1);
                    }
                    else
                    {
                        Sender.Send(Sender.AT + "请管理员来进行操作");
                        return(1);
                    }
                }

                // 关闭千歌
                if (rcc(Msg) == "关千歌")
                {
                    ModelWithSourceString <GroupMemberInfo> info = CoolApiExtensions.GetGroupMemberInfoV2(MainPlugin.CoolQApi, Sender.Source.Group.QQId, Sender.QQ, false);
                    if (info.Model.Authority == "群主" || info.Model.Authority == "管理员" || Sender.QQ == 1813274096)
                    {
                        Sender.Send(Sender.AT + "千歌已关闭");
                        Sender.Source.Group.IsEnable = false;
                        return(1);
                    }
                    else
                    {
                        Sender.Send(Sender.AT + "请管理员来进行操作");
                        return(1);
                    }
                }

                // 群状态
                if (Sender.Source.Group != null)
                {
                    if (rcc(Msg) == "群状态")
                    {
                        Status.Auto3(Sender.Source.Group);
                    }
                }

                // 蜜柑商店
                if (MardarinStore.Auto(Sender, rcc(Msg)) != 0)
                {
                    return(1);
                }

                // 小游戏
                if (MiniGame.Auto(Sender, rcc(Msg)) != 0)
                {
                    return(1);
                }

                // 签到
                if (rcc(Msg) == "签到")
                {
                    return(new Checkin(Sender).Check());
                }

                // 抛锦球
                if (ThrowBall.Auto(Sender, rcc(Msg)) == 1)
                {
                    return(1);
                }

                // 状态
                if (rcc(Msg) == "状态")
                {
                    return(Status.Auto(Sender));
                }
                if (rcc(Msg) == "我的状态")
                {
                    return(Status.Auto2(Sender));
                }

                // 档线
                if (rcc(Msg) == "档线")
                {
                    return(Yohane.StopLine.Auto(Sender));
                }

                // 转账
                if (Transfer.Auto(Sender, rcc(Msg)) == 1)
                {
                    return(1);
                }

                // "Sudo"
                if (Sender.QQ == 1813274096)
                {
                    if (rcc(Msg).IndexOf("sudo") == 0)
                    {
                        string[] parm = Msg.Split('|');
                        if (parm.Length >= 3)
                        {
                            int num = 0;
                            int.TryParse(parm[1], out num);
                            Command cmd = new Command(parm[2], new User(num, Sender.Source), TimeStampHelper.ConvertDateTimeInt(DateTime.Now).ToString());
                            return(cmd.Run());
                        }
                    }
                }

                // 抽卡
                if (ScoutSimulator.Msg.Auto(Sender, rcc(Msg)) != 0)
                {
                    return(1);
                }

                // 抽奖
                if (Lottery.Auto(Sender, rcc(Msg)) != 0)
                {
                    return(1);
                }

                // 鸽服号状态
                if (SIF.CN.Status.Auto(Sender, rcc(Msg)) != 0)
                {
                    return(1);
                }

                // 算运势
                if (rcc(Msg) == "算运势")
                {
                    return(Divination.Auto(Sender));
                }

                // 点歌
                if (rcc(Msg).IndexOf("网易点歌") == 0)
                {
                    return(ChooseSong.Choose.Auto(Sender, rcc(Msg)));
                }

                // 算日美ID
                #region

                /*long getRF_id = 0;
                 * if (Msg.Length == 12)
                 * {
                 *  if (long.TryParse(Msg.Replace("算账号",""), out getRF_id) == true)
                 *  {
                 *      getRF_id = getRF_id * 526850996;
                 *      getRF_id = getRF_id % 999999937;
                 *      Sender.Send(Sender.AT + "Uid: " + Msg.Replace("算账号", "") + "\n" +
                 *          "Id: " + getRF_id);
                 *      return 1;
                 *  }
                 *  else
                 *  {
                 *      MessageSendHelper.Send(Sender, " × 计算失败!以下是狗开发的一点人生经验:\n - 不支持国服\n - 文本格式不对\n - 数值转换错误");
                 *      return 1;
                 *  }
                 * }
                 * else
                 * {
                 *  MessageSendHelper.Send(Sender, " × 计算失败!以下是狗开发的一点人生经验:\n - 不支持国服\n - 文本格式不对\n - 未知");
                 *  return 1;
                 * }*/

                #endregion

                // 聊天解析Beta
                if (Chat.Msg.Auto(Sender, Msg) != 0)
                {
                    return(1);
                }
            }
            catch (Exception ex)
            {
                Logger.Log
                    ("Ex:" + ex.Message, Logger.WARN, new long[] { }, 0);
                Sender.Send("ChikaBot Test System\n错误信息 " + ex.Message + "\n错误来源 " + ex.Source + "\n错误堆叠 " + ex.StackTrace);
                //ExceptionReportHelper.Send("消息处理", Sender, ex, Msg);
                //Sender.Send(" × 千歌酱出了一个Bug, 暂时不能陪你玩了...\n   错误类型:" + ex.GetType().ToString());
            }


            return(0);
        }
Esempio n. 17
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="msg">信息</param>
 /// <param name="User">来源用户</param>
 /// <param name="timeStamp">发送时间</param>
 public Command(string msg, User fromUser, string timeStamp)
 {
     Sender   = fromUser;
     Msg      = msg;
     SendTime = TimeStampHelper.GetTime(timeStamp);
 }
Esempio n. 18
0
 public static int Auto(User Sender, string Msg)
 {
     if (Msg == "抽奖")
     {
         if (Sender.MandarinPoint < 500)
         {
             Sender.Send("你的蜜柑Points不足500!");
             return(1);
         }
         Sender.MandarinPoint = Sender.MandarinPoint - 500;
         Random rd  = new Random();
         int    num = rd.Next(1, 10000);
         if (num == 1)
         {
             if (rd.Next(1, 10000) == 1)
             {
                 Sender.Send(Sender.AT + "恭喜你中了Loveca * 1~这颗Loveca可以在 国服 日服 美服兑换,请联系Q柚兑换吧~");
                 Command cmd = new Command("#全群通知恭喜" + Sender.QQ + "抽奖中了一颗SIF中的Loveca~", new User(-10000, new UserSource(UserSource.GroupMessage, Sender.Source.Group, 0)), TimeStampHelper.ConvertDateTimeInt(DateTime.Now).ToString());
                 new User(1813274096, new UserSource(UserSource.PrivateMessage, null, 0)).Send(Sender.QQ + "获得了一颗Loveca,请及时兑换");
                 return(1);
             }
             else
             {
                 num = rd.Next(1, 10000);
             }
         }
         else if (num > 1 && num <= 500)
         {
             Sender.Send(Sender.AT + " 获得绿卷一张~已发送到你的背包~");
             Sender.ScoutTicket++;
             return(1);
         }
         else if (num > 500 && num <= 2000)
         {
             Sender.Send(Sender.AT + " 获得Loveca一块,这个Loveca只能在机器人内使用!");
             Sender.Loveca++;
             return(1);
         }
         else if (num > 2000 && num <= 4000)
         {
             Sender.Send(Sender.AT + " 获得蜜柑Poins × 500点~已发送到你的背包~");
             Sender.MandarinPoint = Sender.MandarinPoint + 500;
             return(1);
         }
         else if (num > 4000 && num <= 7000)
         {
             Sender.Send(Sender.AT + " 获得蜜柑Points × 100点~已发送到你的背包~");
             Sender.MandarinPoint = Sender.MandarinPoint + 100;
             return(1);
         }
         else
         {
             Sender.Send(Sender.AT + " 什么都没得到哦~");
             return(1);
         }
     }
     return(0);
 }