Ejemplo n.º 1
0
        private async Task <Order> DoFirstOffer()
        {
            OfferList offers = await _marketPlaceClient.GetOffers().ConfigureAwait(false);

            //lets do the tutorial!
            Offer offer = offers.Offers.SingleOrDefault(o => o.ContentType.Equals("tutorial"));

            //This won't go through because the Kin asset isn't trusted yet
            if (offer != null)
            {
                OpenOrder orderResponse = await _marketPlaceClient.CreateOrderForOffer(offer.Id).ConfigureAwait(false);

                Order submitOrder = await _marketPlaceClient.SubmitOrder(orderResponse.Id).ConfigureAwait(false);

                Order finishedOrder = await WaitForOrderCompletion(UserId, submitOrder.Id).ConfigureAwait(false);

                if (!string.IsNullOrEmpty(finishedOrder?.OrderResult?.Jwt))
                {
                    SecurityToken token = _marketPlaceJwtProvider.ValidateJwtToken(finishedOrder?.OrderResult?.Jwt);
                }

                return(finishedOrder);
            }

            throw new Exception("no offers dawg");
        }
Ejemplo n.º 2
0
        private void NewOffer()
        {
            if (Validator.ValidateAll().IsValid)
            {
                if (order.Id == 0)
                {
                    order = UnitOfWork.Orders.Add(order);
                }

                var vm = new OfferCreationViewModel(new UnitOfWorkFactory());
                vm.Init();
                var windowView = new OfferCreationView(vm);

                if (windowView.ShowDialog() ?? false)
                {
                    var    offerNumber = vm.OfferNumber;
                    string fileName;
                    try
                    {
                        fileName = FileAccess.CreateDocumentFromTemplate(order.Customer, offerNumber, Properties.Settings.Default.OfferTemplatePath);
                    }
                    catch (Win32Exception)
                    {
                        MessageBox.Show("Das Dokument konnte nicht erstellt werden. Eventuell haben Sie die Vorlage noch geöffnet.", "Ein Fehler ist aufgetreten");
                        return;
                    }

                    var document = new Document
                    {
                        IssueDate    = DateTime.Now,
                        Name         = offerNumber,
                        Tag          = "Offerte",
                        RelativePath = fileName
                    };

                    document = UnitOfWork.Documents.Add(document);

                    var offer = new Offer
                    {
                        OfferNumber = offerNumber,
                        Order       = order,
                        Document    = document
                    };

                    offer = UnitOfWork.Offers.Add(offer);

                    UnitOfWork.Complete();

                    OfferList.Add(offer);

                    if (vm.OpenAfterSave ?? false)
                    {
                        Open(fileName);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public override void OnAppearing()
 {
     base.OnAppearing();
     MainThread.BeginInvokeOnMainThread(async() =>
     {
         if (OfferList.Any())
         {
             return;
         }
         await GetDataAsync();
     });
 }
Ejemplo n.º 4
0
        public BufferOffer(ObservableCollection <BaseEquipment> offereq)
        {
            OfferList = offereq.ToList();
            OfferList = OfferList.Distinct().ToList();
            Header    = "Здравствуйте, ";
            Footer    = @"Оборудование марки Метроном производит / поставляет (продает),
обеспечивает гарантийную, постгарантийную и сервисную поддержку,
а также является держателем всех сертификатов на оборудование
только компания Прайм Тайм.";
            //Сделать пример самогенерящийся
            ExplainPoverka = @"
Примечание:
В зависимости от сферы применения оборудование может поставляться с
определенными опциями (начиная с версии Метроном-300).
Опции устанавливаются только при заказе оборудования.
Особенно это важно, если нужна поверка
http://www.ptime.ru/si.html
(меняется название оборудования и обязательное использование опционного
внутреннего генератора OCXO-HQ).
Ознакомьтесь, пожалуйста, с памяткой:
http://www.ptime.ru/Downloads/pamyatka_Metronom.pdf


В качестве примера, если нужен Метроном-300 с поверкой, то это будет:

Устройство синхронизации частоты и времени Метроном-300/GNS-HQ
2 x NTP LAN Ethernet 10/100, RJ45; 2xRS232, 1x10МГц (TTL), 1x1PPS, генератор
OCXO-HQ, эл.пит. ~220В.
6350 Евро с НДС.
Антенна ГЛОНАСС/GPS со встроенным грозоразрядником.
435 Евро с НДС.
Антенный кабель 50 м.
140 Евро с НДС.
Организация поверки (получение свидетельства о поверке)
600 Евро с НДС.

http://www.ptime.ru/Metronom/si/Metronom300si.html
Оплата в рублях по курсу ЦБ.
Склад Москва 14-16 недель (12 недель + 2-4 недели поверка).
3 года гарантии. (Расширение гарантии до 5 лет +20% к стоимости)
Паспорт на изделие. Декларация соответствия ТС (EAC). Свидетельство о поверке.";

            BufferMessage  = "";
            BufferMessage += Header + "\n\n";
            BufferMessage += CreateOfferFromList(OfferList);

            BufferMessage += ExplainPoverka;
            BufferMessage += Footer;
        }
Ejemplo n.º 5
0
        internal Types.PagedList <Offer> ApiToDomain(OfferList value)
        {
            if (value == null)
            {
                return(null);
            }

            return(new Types.PagedList <Offer>
            {
                Page = value.Page,
                ItemsPerPage = value.PerPage,
                TotalItems = value.Total,
                List = value.List?.Select(ApiToDomain).ToList()
            });
        }
Ejemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Reader"></param>
        public override void ReadXml(XmlReader Reader)
        {
            // read baseclass part
            base.ReadXml(Reader);

            // shopbot
            Reader.ReadToFollowing(XMLTAG_BOT);
            IntervalBroadcast = GameTick.MSINSECOND * Convert.ToUInt32(Reader[XMLATTRIB_INTERVALBROADCAST]);
            IntervalSay       = GameTick.MSINSECOND * Convert.ToUInt32(Reader[XMLATTRIB_INTERVALSAY]);
            TellOnEnter       = Convert.ToBoolean(Reader[XMLATTRIB_TELLONENTER]);
            ChatPrefixString  = Reader[XMLATTRIB_CHATPREFIXSTRING];
            Shopname          = Reader[XMLATTRIB_SHOPNAME];

            // vars for lists
            string name;
            uint   unitprice;
            uint   amount;

            // offerlist
            OfferList.Clear();
            Reader.ReadToFollowing(XMLTAG_OFFERLIST);
            if (Reader.ReadToDescendant(XMLTAG_ITEM))
            {
                do
                {
                    name      = Reader[XMLATTRIB_NAME];
                    unitprice = Convert.ToUInt32(Reader[XMLATTRIB_UNITPRICE]);
                    amount    = Convert.ToUInt32(Reader[XMLATTRIB_COUNT]);

                    OfferList.Add(new ShopItem(name, unitprice, amount));
                }while (Reader.ReadToNextSibling(XMLTAG_ITEM));
            }

            // buylist
            BuyList.Clear();
            Reader.ReadToFollowing(XMLTAG_BUYLIST);
            if (Reader.ReadToDescendant(XMLTAG_ITEM))
            {
                do
                {
                    name      = Reader[XMLATTRIB_NAME];
                    unitprice = Convert.ToUInt32(Reader[XMLATTRIB_UNITPRICE]);
                    amount    = Convert.ToUInt32(Reader[XMLATTRIB_COUNT]);

                    BuyList.Add(new ShopItem(name, unitprice, amount));
                }while (Reader.ReadToNextSibling(XMLTAG_ITEM));
            }
        }
Ejemplo n.º 7
0
        public ActionResult DownloadData(string name, string url)
        {
            DateTime  thisDay   = DateTime.Now;
            OfferList offerList = new OfferList
            {
                UserName    = "******",
                Date        = thisDay.ToString(),
                NameOfOffer = name
            };

            db.OfferList.Add(offerList);
            db.SaveChanges();
            byte[] fileBytes = System.IO.File.ReadAllBytes(url);
            string fileName  = "Your_File.zip";

            return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName));
        }
        public ActionResult Index(CallCenterOffersModel offersModel, string command)
        {
            if (command == "Submit")
            {
                OfferList[] listArray = new OfferList[5];

                var goodWillOfferList = new OfferList();
                goodWillOfferList.IsOffered  = offersModel.GoodwillOffer.WasOffered;
                goodWillOfferList.IsAccepted = offersModel.GoodwillOffer.WasAccepted;
                goodWillOfferList.OfferType  = "GoodWill";
                listArray[0] = goodWillOfferList;

                var proactiveOfferList = new OfferList();
                proactiveOfferList.IsOffered  = offersModel.ProactiveOffer.WasOffered;
                proactiveOfferList.IsAccepted = offersModel.ProactiveOffer.WasAccepted;
                proactiveOfferList.OfferType  = "Proactive";
                listArray[1] = proactiveOfferList;

                var discount1OfferList = new OfferList();
                discount1OfferList.IsOffered  = offersModel.Discount1Offer.WasOffered;
                discount1OfferList.IsAccepted = offersModel.Discount1Offer.WasAccepted;
                discount1OfferList.OfferType  = "Discount1";
                listArray[2] = discount1OfferList;

                var transferToLoyaltyOfferList = new OfferList();
                transferToLoyaltyOfferList.IsOffered  = offersModel.TransferToLoyalty.WasOffered;
                transferToLoyaltyOfferList.IsAccepted = offersModel.TransferToLoyalty.WasAccepted;
                transferToLoyaltyOfferList.OfferType  = "TransferToLoyalty";
                listArray[3] = transferToLoyaltyOfferList;

                var disconnectOfferList = new OfferList();
                disconnectOfferList.IsOffered  = offersModel.DisconnectAccepted;
                disconnectOfferList.IsAccepted = offersModel.DisconnectAccepted;
                disconnectOfferList.OfferType  = "Disconnect";
                listArray[4] = disconnectOfferList;

                _logRepository.LogSaveOffers(listArray, offersModel.SavesLogId, null, null, null, "Save", 0, false);

                return(View("Summary", offersModel));
            }

            //TODO: Log Action
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 9
0
        public ActionResult Index(LoyaltyOffersModel offersModel, string command)
        {
            if (command == "Submit")
            {
                OfferList[] listArray = new OfferList[3];

                var loyalty1OfferList = new OfferList();
                loyalty1OfferList.IsOffered  = offersModel.Loyalty1Offer.WasOffered;
                loyalty1OfferList.IsAccepted = offersModel.Loyalty1Offer.WasAccepted;
                loyalty1OfferList.OfferType  = "Loyalty1";
                listArray[0] = loyalty1OfferList;

                var loyalty2OfferList = new OfferList();
                loyalty2OfferList.IsOffered  = offersModel.Loyalty2Offer.WasOffered;
                loyalty2OfferList.IsAccepted = offersModel.Loyalty2Offer.WasAccepted;
                loyalty2OfferList.OfferType  = "Loyalty2";
                listArray[1] = loyalty2OfferList;

                var contractOfferList = new OfferList();
                contractOfferList.IsOffered  = offersModel.ContractOffer.WasOffered;
                contractOfferList.IsAccepted = offersModel.ContractOffer.WasAccepted;
                contractOfferList.OfferType  = "Contract";
                listArray[2] = contractOfferList;


                decimal fiveYearDiscountAmt = 0;
                if (offersModel.ContractOffer.WasAccepted)
                {
                    string  selectedDiscountAmt = offersModel.SelectedFiveYearDiscountAmt.Remove(0, 1).Trim();
                    decimal returnValue         = 0;
                    fiveYearDiscountAmt = decimal.TryParse(selectedDiscountAmt, out returnValue)
                        ? Convert.ToDecimal(selectedDiscountAmt)
                        : 0;
                }

                _logRepository.LogSaveOffers(listArray, offersModel.SavesLogId, offersModel.SelectedHsd, offersModel.SelectedPhone, offersModel.SelectedCable, "Save", fiveYearDiscountAmt, offersModel.TwelveMonthContract.WasAccepted);

                return(View("Summary", offersModel));
            }

            //TODO: Log Action
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 10
0
        public IEnumerable <InboxDetails> GetByEmployeeId(int id)
        {
            List <InboxDetails> inboxDetails = new List <InboxDetails>();
            var list = db.Fetch <dynamic>($";EXEC AllAdvertisementsOfEmployee @@id={id};");

            foreach (var listItem in list)
            {
                InboxDetails inbox = new InboxDetails();
                inbox.AdvertisementId = listItem.AdvertisementId;
                inbox.ProfilePic      = db.SingleOrDefault <string>("select ProfilePic from Employee Where Id = @0", id);
                inbox.Image           = listItem.Image;
                inbox.AdminMessage    = db.SingleOrDefault <string>("select Message from AdminMessage Where AdvertisementId = @0", listItem.AdvertisementId);
                inbox.Status          = listItem.Status;
                if (listItem.Status == "Removed by Admin")
                {
                    inbox.PostedOn = db.SingleOrDefault <DateTime>("select Time from Report Where AdvertisementId = @0", listItem.AdvertisementId);
                }
                else
                {
                    inbox.PostedOn = listItem.PostedOn;
                }
                inbox.Title  = listItem.Title;
                inbox.Expiry = listItem.Expiry;
                List <OfferList> offerList = new List <OfferList>();
                var offers = db.Fetch <dynamic>($";EXEC GetOffers @@id={listItem.AdvertisementId};");
                foreach (var offer in offers)
                {
                    OfferList offerList1 = new OfferList();
                    offerList1.Id           = offer.Id;
                    offerList1.OfferedBy    = offer.OfferedBy;
                    offerList1.ProfilePic   = offer.ProfilePic;
                    offerList1.OfferedPrice = offer.OfferedPrice.ToString();
                    offerList1.OfferedOn    = offer.OfferedOn;
                    offerList.Add(offerList1);
                }
                inbox.OffersList = offerList;
                inboxDetails.Add(inbox);
            }
            return(inboxDetails);
        }
Ejemplo n.º 11
0
        protected override void HandleRequest()
        {
            NameValueCollection query;

            using (var rdr = new StreamReader(ListenerContext.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            if (query.AllKeys.Length == 0)
            {
                string queryString = string.Empty;
                string currUrl     = ListenerContext.Request.RawUrl;
                int    iqs         = currUrl.IndexOf('?');
                if (iqs >= 0)
                {
                    query =
                        HttpUtility.ParseQueryString((iqs < currUrl.Length - 1)
                            ? currUrl.Substring(iqs + 1)
                            : String.Empty);
                }
            }

            OfferList list = new OfferList();

            using (var db = new Database(Program.Settings.GetValue("conn")))
            {
                var acc = db.Verify(GUID, PASS);

                MySqlCommand cmd = db.CreateQuery();
                cmd.CommandText = "SELECT * FROM market WHERE status=0 ORDER BY id DESC";
                if (acc != null && NameValueCollection["filter"] == "mine")
                {
                    cmd.CommandText = "SELECT * FROM market WHERE accId=@accId ORDER BY id DESC";
                    cmd.Parameters.AddWithValue("@accId", acc.AccountId);
                }

                ushort[]   offerSearch  = new ushort[0];
                ItemData[] offerSearchD = new ItemData[0];
                if (NameValueCollection["offerItems"] != null && NameValueCollection["offerItems"] != "")
                {
                    offerSearch  = Utils.FromCommaSepString16(NameValueCollection["offerItems"]);
                    offerSearchD = new ItemData[offerSearch.Length];
                    if (NameValueCollection["offerData"] != "")
                    {
                        offerSearchD = ItemDataList.CreateData(NameValueCollection["offerData"]);
                    }
                }

                ushort[]   reqSearch  = new ushort[0];
                ItemData[] reqSearchD = new ItemData[0];
                if (NameValueCollection["requestItems"] != null && NameValueCollection["requestItems"] != "")
                {
                    reqSearch  = Utils.FromCommaSepString16(NameValueCollection["requestItems"]);
                    reqSearchD = new ItemData[reqSearch.Length];
                    if (NameValueCollection["requestData"] != "")
                    {
                        reqSearchD = ItemDataList.CreateData(NameValueCollection["requestData"]);
                    }
                }

                using (MySqlDataReader rdr = cmd.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        if (offerSearch.Length > 0)
                        {
                            List <ushort> offerItems = new List <ushort>(Utils.FromCommaSepString16(rdr.GetString("offerItems")));
                            ItemData[]    offerData  = ItemDataList.CreateData(rdr.GetString("offerData"));
                            bool          success    = false;
                            for (int i = 0; i < offerSearch.Length; i++)
                            {
                                int res = -1;
                                if ((res = offerItems.IndexOf(offerSearch[i])) == -1)
                                {
                                    continue;
                                }
                                if (offerSearchD[i] != null)
                                {
                                    bool offerDataE = offerData[res] != null;
                                    if ((offerSearchD[i].Strange && (!offerDataE || !offerData[res].Strange)) || (!offerSearchD[i].Strange && offerDataE && offerData[res].Strange))
                                    {
                                        continue;
                                    }
                                    if (!offerSearchD[i].Strange && offerSearchD[i].NamePrefix != "")
                                    {
                                        if (!offerDataE || (offerDataE && offerData[res].NamePrefix != offerSearchD[i].NamePrefix))
                                        {
                                            continue;
                                        }
                                    }
                                    if (offerSearchD[i].Effect != "" && (!offerDataE || (offerData[res].Effect != offerSearchD[i].Effect)))
                                    {
                                        continue;
                                    }
                                }
                                else if (offerData[res] != null)
                                {
                                    if (offerData[res].Strange || offerData[res].NamePrefix != "" || offerData[res].Effect != "")
                                    {
                                        continue;
                                    }
                                }
                                success = true;
                                break;
                            }
                            if (!success)
                            {
                                continue;
                            }
                        }

                        if (reqSearch.Length > 0)
                        {
                            List <ushort> reqItems = new List <ushort>(Utils.FromCommaSepString16(rdr.GetString("requestItems")));
                            ItemData[]    reqData  = ItemDataList.CreateData(rdr.GetString("requestData"));
                            bool          success  = false;
                            for (int i = 0; i < reqSearch.Length; i++)
                            {
                                int res = -1;
                                if ((res = reqItems.IndexOf(reqSearch[i])) == -1)
                                {
                                    continue;
                                }
                                if (reqSearchD[i] != null)
                                {
                                    bool reqDataE = reqData[res] != null;
                                    if ((reqSearchD[i].Strange && (!reqDataE || !reqData[res].Strange)) || (!reqSearchD[i].Strange && reqDataE && reqData[res].Strange))
                                    {
                                        continue;
                                    }
                                    if (!reqSearchD[i].Strange && reqSearchD[i].NamePrefix != "")
                                    {
                                        if (!reqDataE || (reqDataE && reqData[res].NamePrefix != reqSearchD[i].NamePrefix))
                                        {
                                            continue;
                                        }
                                    }
                                    if (reqSearchD[i].Effect != "" && (!reqDataE || (reqData[res].Effect != reqSearchD[i].Effect)))
                                    {
                                        continue;
                                    }
                                }
                                else if (reqData[res] != null)
                                {
                                    if (reqData[res].Strange || reqData[res].NamePrefix != "" || reqData[res].Effect != "")
                                    {
                                        continue;
                                    }
                                }
                                success = true;
                                break;
                            }
                            if (!success)
                            {
                                continue;
                            }
                        }

                        list.Offers.Add(new Offer
                        {
                            Id    = rdr.GetInt32("id"),
                            AccId = rdr.GetInt32("accId"),

                            Mine   = acc != null ? rdr.GetInt32("accId") == acc.AccountId : false,
                            Status = rdr.GetInt32("status"),

                            _OfferItems = rdr.GetString("offerItems"),
                            _OfferData  = rdr.GetString("offerData"),

                            _RequestItems = rdr.GetString("requestItems"),
                            _RequestData  = rdr.GetString("requestData")
                        });
                    }
                }
            }

            if (NameValueCollection["filter"] != "mine" && NameValueCollection["filter"] != "searched")
            {
                if (list.Offers.Count > 100)
                {
                    list.Offers.RemoveRange(100, list.Offers.Count - 100);
                }
            }

            var ms         = new MemoryStream();
            var serializer = new XmlSerializer(list.GetType(),
                                               new XmlRootAttribute("Offers")
            {
                Namespace = ""
            });

            var xws = new XmlWriterSettings();

            xws.OmitXmlDeclaration = true;
            xws.Encoding           = Encoding.UTF8;
            xws.Indent             = true;
            XmlWriter xtw = XmlWriter.Create(ListenerContext.Response.OutputStream, xws);

            serializer.Serialize(xtw, list, list.Namespaces);
        }
Ejemplo n.º 12
0
        public override void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;

            using (var rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            if (query.AllKeys.Length == 0)
            {
                string queryString = string.Empty;
                string currUrl     = context.Request.RawUrl;
                int    iqs         = currUrl.IndexOf('?');
                if (iqs >= 0)
                {
                    query =
                        HttpUtility.ParseQueryString((iqs < currUrl.Length - 1)
                            ? currUrl.Substring(iqs + 1)
                            : String.Empty);
                }
            }

            /*using (var db = new Database(Program.Settings.GetValue("conn")))
             * {
             *  Account acc = db.Verify(query["guid"], query["password"]);
             *  int num = Convert.ToInt32(query["num"]);
             *  int offset = Convert.ToInt32(query["offset"]);
             *  if (num == 0)
             *  {
             *      num = 50;
             *  }
             *  byte[] status;
             *  if (acc == null)
             *      status = Encoding.UTF8.GetBytes("<Error>Account credentials not valid</Error>");
             *  else
             *  {
             *      try
             *      {
             *          status = Encoding.UTF8.GetBytes(db.HttpGetGuildMembers(num, offset, acc));
             *      }
             *      catch
             *      {
             *          status = Encoding.UTF8.GetBytes("<Error>Guild member error</Error>");
             *      }
             *  }
             *  context.Response.OutputStream.Write(status, 0, status.Length);
             * }*/

            OfferList list = new OfferList();

            using (var db = new Database(Program.Settings.GetValue("conn")))
            {
                var acc = db.Verify(query["guid"], query["password"]);

                var cmd = db.CreateQuery();

                cmd.CommandText = "SELECT * FROM market WHERE status=0 ORDER BY id DESC";
                if (acc != null && query["filter"] == "mine")
                {
                    cmd.CommandText = "SELECT * FROM market WHERE accId=@accId ORDER BY id DESC";
                    cmd.Parameters.AddWithValue("@accId", acc.AccountId);
                }

                ushort[]   offerSearch  = new ushort[0];
                ItemData[] offerSearchD = new ItemData[0];
                if (query["offerItems"] != null && query["offerItems"] != "")
                {
                    offerSearch  = Utils.FromCommaSepString16(query["offerItems"]);
                    offerSearchD = new ItemData[offerSearch.Length];
                    if (query["offerData"] != "")
                    {
                        offerSearchD = ItemDataList.CreateData(query["offerData"]);
                    }
                }

                ushort[]   reqSearch  = new ushort[0];
                ItemData[] reqSearchD = new ItemData[0];
                if (query["requestItems"] != null && query["requestItems"] != "")
                {
                    reqSearch  = Utils.FromCommaSepString16(query["requestItems"]);
                    reqSearchD = new ItemData[reqSearch.Length];
                    if (query["requestData"] != "")
                    {
                        reqSearchD = ItemDataList.CreateData(query["requestData"]);
                    }
                }

                using (var rdr = cmd.ExecuteReader())
                    if (rdr.HasRows)
                    {
                        while (rdr.Read())
                        {
                            if (offerSearch.Length > 0)
                            {
                                List <ushort> offerItems = new List <ushort>(Utils.FromCommaSepString16(rdr.GetString("offerItems")));
                                ItemData[]    offerData  = ItemDataList.CreateData(rdr.GetString("offerData"));
                                bool          success    = false;
                                for (int i = 0; i < offerSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = offerItems.IndexOf(offerSearch[i])) == -1)
                                    {
                                        continue;
                                    }
                                    if (offerSearchD[i] != null)
                                    {
                                        bool offerDataE = offerData[res] != null;
                                        if ((offerSearchD[i].Strange && (!offerDataE || !offerData[res].Strange)) || (!offerSearchD[i].Strange && offerDataE && offerData[res].Strange))
                                        {
                                            continue;
                                        }
                                        if (!offerSearchD[i].Strange && offerSearchD[i].NamePrefix != "")
                                        {
                                            if (!offerDataE || (offerDataE && offerData[res].NamePrefix != offerSearchD[i].NamePrefix))
                                            {
                                                continue;
                                            }
                                        }
                                        if (offerSearchD[i].Effect != "" && (!offerDataE || (offerData[res].Effect != offerSearchD[i].Effect)))
                                        {
                                            continue;
                                        }
                                    }
                                    else if (offerData[res] != null)
                                    {
                                        if (offerData[res].Strange || offerData[res].NamePrefix != "" || offerData[res].Effect != "")
                                        {
                                            continue;
                                        }
                                    }
                                    success = true;
                                    break;
                                }
                                if (!success)
                                {
                                    continue;
                                }
                            }

                            if (reqSearch.Length > 0)
                            {
                                List <ushort> reqItems = new List <ushort>(Utils.FromCommaSepString16(rdr.GetString("requestItems")));
                                ItemData[]    reqData  = ItemDataList.CreateData(rdr.GetString("requestData"));
                                bool          success  = false;
                                for (int i = 0; i < reqSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = reqItems.IndexOf(reqSearch[i])) == -1)
                                    {
                                        continue;
                                    }
                                    if (reqSearchD[i] != null)
                                    {
                                        bool reqDataE = reqData[res] != null;
                                        if ((reqSearchD[i].Strange && (!reqDataE || !reqData[res].Strange)) || (!reqSearchD[i].Strange && reqDataE && reqData[res].Strange))
                                        {
                                            continue;
                                        }
                                        if (!reqSearchD[i].Strange && reqSearchD[i].NamePrefix != "")
                                        {
                                            if (!reqDataE || (reqDataE && reqData[res].NamePrefix != reqSearchD[i].NamePrefix))
                                            {
                                                continue;
                                            }
                                        }
                                        if (reqSearchD[i].Effect != "" && (!reqDataE || (reqData[res].Effect != reqSearchD[i].Effect)))
                                        {
                                            continue;
                                        }
                                    }
                                    else if (reqData[res] != null)
                                    {
                                        if (reqData[res].Strange || reqData[res].NamePrefix != "" || reqData[res].Effect != "")
                                        {
                                            continue;
                                        }
                                    }
                                    success = true;
                                    break;
                                }
                                if (!success)
                                {
                                    continue;
                                }
                            }

                            list.Offers.Add(new Offer
                            {
                                Id    = rdr.GetInt32("id"),
                                AccId = rdr.GetInt32("accId"),

                                Mine   = acc != null ? rdr.GetInt32("accId") == acc.AccountId : false,
                                Status = rdr.GetInt32("status"),

                                _OfferItems = rdr.GetString("offerItems"),
                                _OfferData  = rdr.GetString("offerData"),

                                _RequestItems = rdr.GetString("requestItems"),
                                _RequestData  = rdr.GetString("requestData")
                            });
                        }
                    }
            }

            if (query["filter"] != "mine" && query["filter"] != "searched")
            {
                if (list.Offers.Count > 50)
                {
                    list.Offers.RemoveRange(50, list.Offers.Count - 50);
                }
            }

            var ms         = new MemoryStream();
            var serializer = new XmlSerializer(list.GetType(),
                                               new XmlRootAttribute("Offers")
            {
                Namespace = ""
            });

            var xws = new XmlWriterSettings();

            xws.OmitXmlDeclaration = true;
            xws.Encoding           = Encoding.UTF8;
            xws.Indent             = true;
            XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);

            serializer.Serialize(xtw, list, list.Namespaces);
        }
Ejemplo n.º 13
0
        public override void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (var rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            if (query.AllKeys.Length == 0)
            {
                string queryString = string.Empty;
                string currUrl = context.Request.RawUrl;
                int iqs = currUrl.IndexOf('?');
                if (iqs >= 0)
                {
                    query =
                        HttpUtility.ParseQueryString((iqs < currUrl.Length - 1)
                            ? currUrl.Substring(iqs + 1)
                            : String.Empty);
                }
            }

            /*using (var db = new Database(Program.Settings.GetValue("conn")))
            {
                Account acc = db.Verify(query["guid"], query["password"]);
                int num = Convert.ToInt32(query["num"]);
                int offset = Convert.ToInt32(query["offset"]);
                if (num == 0)
                {
                    num = 50;
                }
                byte[] status;
                if (acc == null)
                    status = Encoding.UTF8.GetBytes("<Error>Account credentials not valid</Error>");
                else
                {
                    try
                    {
                        status = Encoding.UTF8.GetBytes(db.HttpGetGuildMembers(num, offset, acc));
                    }
                    catch
                    {
                        status = Encoding.UTF8.GetBytes("<Error>Guild member error</Error>");
                    }
                }
                context.Response.OutputStream.Write(status, 0, status.Length);
            }*/

            OfferList list = new OfferList();
            using (var db = new Database(Program.Settings.GetValue("conn")))
            {
                var acc = db.Verify(query["guid"], query["password"]);

                var cmd = db.CreateQuery();

                cmd.CommandText = "SELECT * FROM market WHERE status=0 ORDER BY id DESC";
                if (acc != null && query["filter"] == "mine")
                {
                    cmd.CommandText = "SELECT * FROM market WHERE accId=@accId ORDER BY id DESC";
                    cmd.Parameters.AddWithValue("@accId", acc.AccountId);
                }

                ushort[] offerSearch = new ushort[0];
                ItemData[] offerSearchD = new ItemData[0];
                if (query["offerItems"] != null && query["offerItems"] != "")
                {
                    offerSearch = Utils.FromCommaSepString16(query["offerItems"]);
                    offerSearchD = new ItemData[offerSearch.Length];
                    if (query["offerData"] != "")
                        offerSearchD = ItemDataList.CreateData(query["offerData"]);
                }

                ushort[] reqSearch = new ushort[0];
                ItemData[] reqSearchD = new ItemData[0];
                if (query["requestItems"] != null && query["requestItems"] != "")
                {
                    reqSearch = Utils.FromCommaSepString16(query["requestItems"]);
                    reqSearchD = new ItemData[reqSearch.Length];
                    if (query["requestData"] != "")
                        reqSearchD = ItemDataList.CreateData(query["requestData"]);
                }

                using (var rdr = cmd.ExecuteReader())
                    if (rdr.HasRows)
                    {
                        while(rdr.Read())
                        {
                            if (offerSearch.Length > 0)
                            {
                                List<ushort> offerItems = new List<ushort>(Utils.FromCommaSepString16(rdr.GetString("offerItems")));
                                ItemData[] offerData = ItemDataList.CreateData(rdr.GetString("offerData"));
                                bool success = false;
                                for (int i = 0; i < offerSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = offerItems.IndexOf(offerSearch[i])) == -1)
                                        continue;
                                    if (offerSearchD[i] != null)
                                    {
                                        bool offerDataE = offerData[res] != null;
                                        if((offerSearchD[i].Strange && (!offerDataE || !offerData[res].Strange)) || (!offerSearchD[i].Strange && offerDataE && offerData[res].Strange))
                                            continue;
                                        if (!offerSearchD[i].Strange && offerSearchD[i].NamePrefix != "")
                                            if (!offerDataE || (offerDataE && offerData[res].NamePrefix != offerSearchD[i].NamePrefix))
                                                continue;
                                        if (offerSearchD[i].Effect != "" && (!offerDataE || (offerData[res].Effect != offerSearchD[i].Effect)))
                                            continue;
                                    }
                                    else if (offerData[res] != null)
                                        if (offerData[res].Strange || offerData[res].NamePrefix != "" || offerData[res].Effect != "")
                                            continue;
                                    success = true;
                                    break;
                                }
                                if (!success)
                                    continue;
                            }

                            if (reqSearch.Length > 0)
                            {
                                List<ushort> reqItems = new List<ushort>(Utils.FromCommaSepString16(rdr.GetString("requestItems")));
                                ItemData[] reqData = ItemDataList.CreateData(rdr.GetString("requestData"));
                                bool success = false;
                                for (int i = 0; i < reqSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = reqItems.IndexOf(reqSearch[i])) == -1)
                                        continue;
                                    if (reqSearchD[i] != null)
                                    {
                                        bool reqDataE = reqData[res] != null;
                                        if ((reqSearchD[i].Strange && (!reqDataE || !reqData[res].Strange)) || (!reqSearchD[i].Strange && reqDataE && reqData[res].Strange))
                                            continue;
                                        if (!reqSearchD[i].Strange && reqSearchD[i].NamePrefix != "")
                                            if (!reqDataE || (reqDataE && reqData[res].NamePrefix != reqSearchD[i].NamePrefix))
                                                continue;
                                        if (reqSearchD[i].Effect != "" && (!reqDataE || (reqData[res].Effect != reqSearchD[i].Effect)))
                                            continue;
                                    }
                                    else if (reqData[res] != null)
                                        if (reqData[res].Strange || reqData[res].NamePrefix != "" || reqData[res].Effect != "")
                                            continue;
                                    success = true;
                                    break;
                                }
                                if (!success)
                                    continue;
                            }

                            list.Offers.Add(new Offer
                            {
                                Id = rdr.GetInt32("id"),
                                AccId = rdr.GetInt32("accId"),

                                Mine = acc != null ? rdr.GetInt32("accId") == acc.AccountId : false,
                                Status = rdr.GetInt32("status"),

                                _OfferItems = rdr.GetString("offerItems"),
                                _OfferData = rdr.GetString("offerData"),

                                _RequestItems = rdr.GetString("requestItems"),
                                _RequestData = rdr.GetString("requestData")
                            });
                        }
                    }
            }

            if(query["filter"] != "mine" && query["filter"] != "searched")
                if (list.Offers.Count > 50)
                    list.Offers.RemoveRange(50, list.Offers.Count - 50);

            var ms = new MemoryStream();
            var serializer = new XmlSerializer(list.GetType(),
                new XmlRootAttribute("Offers") { Namespace = "" });

            var xws = new XmlWriterSettings();
            xws.OmitXmlDeclaration = true;
            xws.Encoding = Encoding.UTF8;
            xws.Indent = true;
            XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
            serializer.Serialize(xtw, list, list.Namespaces);
        }
Ejemplo n.º 14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Document"></param>
        public override void ReadXml(XmlDocument Document)
        {
            // read baseclass part
            base.ReadXml(Document);

            uint    val_uint;
            bool    val_bool;
            XmlNode node;
            string  name;
            uint    unitprice;
            uint    amount;

            OfferList.Clear();
            BuyList.Clear();

            // basics

            node = Document.DocumentElement.SelectSingleNode(
                '/' + XMLTAG_CONFIGURATION + '/' + XMLTAG_BOT);

            if (node != null)
            {
                IntervalBroadcast = (node.Attributes[XMLATTRIB_INTERVALBROADCAST] != null && UInt32.TryParse(node.Attributes[XMLATTRIB_INTERVALBROADCAST].Value, out val_uint)) ?
                                    val_uint * GameTick.MSINSECOND : DEFAULTVAL_SHOPBOT_INTERVALBROADCAST * GameTick.MSINSECOND;

                IntervalSay = (node.Attributes[XMLATTRIB_INTERVALSAY] != null && UInt32.TryParse(node.Attributes[XMLATTRIB_INTERVALSAY].Value, out val_uint)) ?
                              val_uint * GameTick.MSINSECOND : DEFAULTVAL_SHOPBOT_INTERVALSAY * GameTick.MSINSECOND;

                TellOnEnter = (node.Attributes[XMLATTRIB_TELLONENTER] != null && Boolean.TryParse(node.Attributes[XMLATTRIB_TELLONENTER].Value, out val_bool)) ?
                              val_bool : DEFAULTVAL_SHOPBOT_TELLONENTER;

                ChatPrefixString = (node.Attributes[XMLATTRIB_CHATPREFIXSTRING] != null) ?
                                   node.Attributes[XMLATTRIB_CHATPREFIXSTRING].Value : DEFAULTVAL_SHOPBOT_CHATPREFIXSTRING;

                Shopname = (node.Attributes[XMLATTRIB_SHOPNAME] != null) ?
                           node.Attributes[XMLATTRIB_SHOPNAME].Value : DEFAULTVAL_SHOPBOT_SHOPNAME;
            }
            else
            {
                IntervalBroadcast = DEFAULTVAL_SHOPBOT_INTERVALBROADCAST * GameTick.MSINSECOND;
                IntervalSay       = DEFAULTVAL_SHOPBOT_INTERVALSAY * GameTick.MSINSECOND;
                TellOnEnter       = DEFAULTVAL_SHOPBOT_TELLONENTER;
                ChatPrefixString  = DEFAULTVAL_SHOPBOT_CHATPREFIXSTRING;
                Shopname          = DEFAULTVAL_SHOPBOT_SHOPNAME;
            }

            // offerlist

            node = Document.DocumentElement.SelectSingleNode(
                '/' + XMLTAG_CONFIGURATION + '/' + XMLTAG_BOT + '/' + XMLTAG_OFFERLIST);

            if (node != null)
            {
                foreach (XmlNode child in node.ChildNodes)
                {
                    if (child.Name != XMLTAG_ITEM)
                    {
                        continue;
                    }

                    name = (child.Attributes[XMLATTRIB_NAME] != null) ?
                           child.Attributes[XMLATTRIB_NAME].Value : DEFAULTVAL_OFFERLIST_NAME;

                    unitprice = (child.Attributes[XMLATTRIB_UNITPRICE] != null && UInt32.TryParse(child.Attributes[XMLATTRIB_UNITPRICE].Value, out val_uint)) ?
                                val_uint : DEFAULTVAL_OFFERLIST_UNITPRICE;

                    amount = (child.Attributes[XMLATTRIB_COUNT] != null && UInt32.TryParse(child.Attributes[XMLATTRIB_COUNT].Value, out val_uint)) ?
                             val_uint : DEFAULTVAL_OFFERLIST_AMOUNT;

                    OfferList.Add(new ShopItem(name, unitprice, amount));
                }
            }

            // buylist

            node = Document.DocumentElement.SelectSingleNode(
                '/' + XMLTAG_CONFIGURATION + '/' + XMLTAG_BOT + '/' + XMLTAG_BUYLIST);

            if (node != null)
            {
                foreach (XmlNode child in node.ChildNodes)
                {
                    if (child.Name != XMLTAG_ITEM)
                    {
                        continue;
                    }

                    name = (child.Attributes[XMLATTRIB_NAME] != null) ?
                           child.Attributes[XMLATTRIB_NAME].Value : DEFAULTVAL_OFFERLIST_NAME;

                    unitprice = (child.Attributes[XMLATTRIB_UNITPRICE] != null && UInt32.TryParse(child.Attributes[XMLATTRIB_UNITPRICE].Value, out val_uint)) ?
                                val_uint : DEFAULTVAL_OFFERLIST_UNITPRICE;

                    amount = (child.Attributes[XMLATTRIB_COUNT] != null && UInt32.TryParse(child.Attributes[XMLATTRIB_COUNT].Value, out val_uint)) ?
                             val_uint : DEFAULTVAL_OFFERLIST_AMOUNT;

                    BuyList.Add(new ShopItem(name, unitprice, amount));
                }
            }
        }
Ejemplo n.º 15
0
        public async Task Init()
        {
            var request = await _requestService.GetById <Request>(Id);

            if (request.Inactive == true)
            {
                InActiveRequest = true;
                ActiveRequest   = false;
                return;
            }
            InitRequest(request);
            var address = await _addressService.GetById <Address>(request.DeliveryAddress);

            var country = await _countryService.GetById <Country>((int)address.CountryId);

            var status = await _statusService.GetById <Model.Status>(request.StatusId);

            InitStatus(status);

            Address    = $"{country.Name}, {address.ZipCode}, {address.City}";
            IsSupplier = JWTService.DecodeJWTRole() == Role.Supplier;
            IsClient   = !IsSupplier;

            if (IsClient)
            {
                var searchRequest = new OfferSearchRequest
                {
                    RequestId     = Id,
                    OfferStatusId = (int)Models.OfferStatus.Active
                };
                var offerList = await _offerService.GetAll <List <Offer> >(searchRequest);

                if (offerList.Count == 0)
                {
                    HaveAcceptedOffer = await RequestHaveAcceptedOffer();

                    HaveFinishedOffer = await RequestHaveFinishedOffer();

                    HaveActiveOffers = await RequestHaveActiveOffer();

                    var finishedOffer = await RequestHaveFinishedOfferWithoutRating();

                    if (!HaveAcceptedOffer && !finishedOffer)
                    {
                        ShowEditButton = true;
                    }

                    if (HaveFinishedOffer)
                    {
                        var list = await _ratingTypeService.GetAll <List <Model.RatingType> >();

                        RatingTypeList.Clear();
                        foreach (var rt in list)
                        {
                            RatingTypeList.Add(rt);
                        }
                    }
                }
                else
                {
                    ShowList = true;
                }

                OfferList.Clear();
                foreach (var offer in offerList)
                {
                    var supplier = await _authService.GetById(offer.UserId);

                    var supplierAddress = await _addressService.GetById <Address>((int)supplier.AddressId);

                    var supplierCountry = await _countryService.GetById <Country>((int)supplierAddress.CountryId);

                    var user = await _authService.GetById(offer.UserId);

                    var newOffer = new RequestDetailsOffers
                    {
                        Company    = user.Company,
                        UserFromId = offer.UserId,
                        Address    = supplierCountry.Name + ", " + supplierAddress.City,
                        OfferId    = offer.OfferId
                    };

                    OfferList.Add(newOffer);
                }
                OffersHeight = OfferList.Count * 65;
            }
            else
            {
                await InitFieldsVisibility();
            }

            var recommendedRequests = await _requestService.RecommendRequest <List <Request> >(Id);

            RecommendedRequests.Clear();
            foreach (var recRequest in recommendedRequests)
            {
                var toAddress = await _addressService.GetById <Address>(recRequest.DeliveryAddress);

                var toCountry = await _countryService.GetById <Country>((int)toAddress.CountryId);

                var fromUser = await _authService.GetById(recRequest.ClientId);

                var fromAddress = await _addressService.GetById <Address>((int)fromUser.AddressId);

                var fromCountry = await _countryService.GetById <Country>((int)fromAddress.CountryId);

                var requestModel = new RequestModel
                {
                    FromCountry = fromCountry.Name,
                    Price       = recRequest.Price,
                    RequestId   = recRequest.RequestId,
                    ToCountry   = toCountry.Name,
                    FullName    = $"{fromUser.FirstName} {fromUser.LastName}"
                };

                RecommendedRequests.Add(requestModel);
            }

            if (RecommendedRequests.Count > 0)
            {
                RecommendShowList = true;
            }
            else
            {
                RecommendShowList = false;
            }
        }
Ejemplo n.º 16
0
        protected override void HandleRequest()
        {
            OfferList list = new OfferList();

            using (Database db = new Database())
            {
                MySqlCommand cmd = db.CreateQuery();
                Account      acc = db.Verify(Query["guid"], Query["password"], Program.GameData);

                cmd.CommandText = "SELECT * FROM market WHERE status=0 ORDER BY id DESC";
                if (acc != null && Query["filter"] == "mine")
                {
                    cmd.CommandText = "SELECT * FROM market WHERE accId=@accId ORDER BY id DESC";
                    cmd.Parameters.AddWithValue("@accId", int.Parse(acc.AccountId));
                }

                ushort[]   offerSearch  = new ushort[0];
                ItemData[] offerSearchD = new ItemData[0];
                if (Query["offerItems"] != null && Query["offerItems"] != "")
                {
                    offerSearch  = Utils.FromCommaSepString16z(Query["offerItems"]);
                    offerSearchD = new ItemData[offerSearch.Length];
                    if (Query["offerData"] != "")
                    {
                        offerSearchD = ItemDataList.CreateData(Query["offerData"]);
                    }
                }

                ushort[]   reqSearch  = new ushort[0];
                ItemData[] reqSearchD = new ItemData[0];
                if (Query["requestItems"] != null && Query["requestItems"] != "")
                {
                    reqSearch  = Utils.FromCommaSepString16z(Query["requestItems"]);
                    reqSearchD = new ItemData[reqSearch.Length];
                    if (Query["requestData"] != "")
                    {
                        reqSearchD = ItemDataList.CreateData(Query["requestData"]);
                    }
                }
                using (MySqlDataReader rdr = cmd.ExecuteReader())
                    if (rdr.HasRows)
                    {
                        while (rdr.Read())
                        {
                            if (offerSearch.Length > 0)
                            {
                                List <ushort> offerItems = new List <ushort>(Utils.FromCommaSepString16z(rdr.GetString("offerItems")));
                                ItemData[]    offerData  = ItemDataList.CreateData(rdr.GetString("offerData"));
                                bool          success    = false;
                                for (int i = 0; i < offerSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = offerItems.IndexOf(offerSearch[i])) == -1)
                                    {
                                        continue;
                                    }
                                    success = true;
                                    break;
                                }
                                if (!success)
                                {
                                    continue;
                                }
                            }

                            if (reqSearch.Length > 0)
                            {
                                List <ushort> reqItems = new List <ushort>(Utils.FromCommaSepString16z(rdr.GetString("requestItems")));
                                ItemData[]    reqData  = ItemDataList.CreateData(rdr.GetString("requestData"));
                                bool          success  = false;
                                for (int i = 0; i < reqSearch.Length; i++)
                                {
                                    int res = -1;
                                    if ((res = reqItems.IndexOf(reqSearch[i])) == -1)
                                    {
                                        continue;
                                    }
                                    success = true;
                                    break;
                                }
                                if (!success)
                                {
                                    continue;
                                }
                            }

                            list.Offers.Add(new Offer
                            {
                                Id    = rdr.GetInt32("id"),
                                AccId = rdr.GetInt32("accId"),

                                Mine   = acc != null ? rdr.GetInt32("accId") == int.Parse(acc.AccountId) : false,
                                Status = rdr.GetInt32("status"),

                                _OfferItems = rdr.GetString("offerItems"),
                                _OfferData  = rdr.GetString("offerData"),

                                _RequestItems = rdr.GetString("requestItems"),
                                _RequestData  = rdr.GetString("requestData")
                            });
                        }
                    }
            }
            if (Query["filter"] != "mine" && Query["filter"] != "searched")
            {
                if (list.Offers.Count > 50)
                {
                    list.Offers.RemoveRange(50, list.Offers.Count - 50);
                }
            }

            XmlSerializer serializer = new XmlSerializer(list.GetType(), new XmlRootAttribute("Offers")
            {
                Namespace = ""
            });
            XmlWriterSettings xws = new XmlWriterSettings();

            xws.OmitXmlDeclaration = true;
            xws.Encoding           = Encoding.UTF8;
            xws.Indent             = true;
            XmlWriter xtw = XmlWriter.Create(Context.Response.OutputStream, xws);

            serializer.Serialize(xtw, list, list.Namespaces);
        }