public SeenForm(Poteryashka poteryashka)
 {
     InitializeComponent();
     Seen = new Seen()
     {
         Who = poteryashka
     };
 }
        public PoteryashkaForm(Poteryashka poteryashka)
        {
            InitializeComponent();
            Poteryashka = poteryashka;

            this.nameTextBox.Text           = Poteryashka.Name;
            this.subnameTextBox.Text        = Poteryashka.Surname;
            this.ageMaskedTextBox.Text      = Poteryashka.Age.ToString();
            this.infoTextBox.Text           = Poteryashka.AdditionalInfo;
            this.phoneMaskedTextBox.Text    = Poteryashka.Phone;
            this.lostFromMaskedTextBox.Text = Poteryashka.Lost?.ToShortDateString();
        }
示例#3
0
 public async Task UpdatePoteryashkaAsync(Poteryashka poteryashka)
 {
     if (poteryashka != null)
     {
         var client   = GetClient();
         var postUrl  = url + "updatepoteryashka/";
         var responce = await client.PutAsync(postUrl,
                                              new StringContent(
                                                  JsonConvert.SerializeObject(poteryashka),
                                                  Encoding.UTF8,
                                                  "application/json"));
     }
 }
示例#4
0
        public async Task <Poteryashka> AddPoteryashkaAsync(Poteryashka poteryashka)
        {
            var client   = GetClient();
            var postUrl  = url + "addPoteryashka/";
            var responce = await client.PostAsync(postUrl,
                                                  new StringContent(
                                                      JsonConvert.SerializeObject(poteryashka),
                                                      Encoding.UTF8,
                                                      "application/json"));

            var dataString = await responce.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <Poteryashka>(dataString));
        }
 private void CancelButton_Click(object sender, EventArgs e)
 {
     Poteryashka = null;
 }
 public PoteryashkaForm()
 {
     InitializeComponent();
     Poteryashka = new Poteryashka();
 }
示例#7
0
        public async Task StartAsync()
        {
            listener.Start();

            while (true)
            {
                var httpContext = await listener.GetContextAsync();

                var request  = httpContext.Request;
                var response = httpContext.Response;
                if (request.HttpMethod == "GET")
                {
                    var dataString = "";

                    var splitUrl    = request.RawUrl.Split('/', '?');
                    var requestType = splitUrl[1].ToLower();
                    var stream      = response.OutputStream;
                    if (requestType == "getpoteryashkas")
                    {
                        var data = await dbContext.Poteryashkas.ToListAsync();

                        var surname        = request.QueryString["surname"];
                        var stringAge      = request.QueryString["age"];
                        var stringLostFrom = request.QueryString["lostfrom"];
                        var stringLostTo   = request.QueryString["lostto"];

                        if (!string.IsNullOrWhiteSpace(surname))
                        {
                            data = data.Where(m => m.Surname.ToLower() == surname.ToLower()).ToList();
                        }
                        if (!string.IsNullOrWhiteSpace(stringAge))
                        {
                            if (int.TryParse(stringAge, out var age))
                            {
                                data = data.Where(m => m.Age == age).ToList();
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(stringLostFrom))
                        {
                            if (DateTime.TryParse(stringLostFrom, out var lostFrom))
                            {
                                data = data.Where(m => m.Lost?.ToShortDateString() == lostFrom.ToShortDateString()).ToList();
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(stringLostTo))
                        {
                            if (DateTime.TryParse(stringLostTo, out var lostTo))
                            {
                                data = data.Where(m => m.Found?.ToShortDateString() == lostTo.ToShortDateString()).ToList();
                            }
                        }
                        dataString = JsonConvert.SerializeObject(data, new JsonSerializerSettings()
                        {
                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                        });
                    }
                    else if (requestType == "getpoteryashkaseen")
                    {
                        var stringId = splitUrl.Length > 2 ? splitUrl[2] : null;
                        if (!string.IsNullOrWhiteSpace(stringId))
                        {
                            if (!int.TryParse(stringId, out var id))
                            {
                                httpContext.Response.StatusCode = 400;
                                httpContext.Response.Close();
                                continue;
                            }

                            var data = await dbContext.Seens.Where(m => m.Who.Id == id).ToListAsync();

                            dataString = JsonConvert.SerializeObject(data, new JsonSerializerSettings()
                            {
                                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                            });
                        }
                        else
                        {
                            httpContext.Response.StatusCode = 400;
                            httpContext.Response.Close();
                            continue;
                        }
                    }
                    else
                    {
                        httpContext.Response.StatusCode = 404;
                        httpContext.Response.Close();
                        continue;
                    }

                    using (var writer = new StreamWriter(stream))
                    {
                        await writer.WriteLineAsync(dataString);
                    }
                    httpContext.Response.StatusCode = 200;
                    httpContext.Response.Close();
                    continue;
                }
                else if (request.HttpMethod == "POST")
                {
                    var splitUrl = request.RawUrl.Split('/');
                    var dataType = splitUrl[1].ToLower();
                    if (dataType == "addpoteryashka")
                    {
                        Poteryashka poteryashka = null;
                        var         inputStream = request.InputStream;
                        using (var streamReader = new StreamReader(inputStream))
                        {
                            poteryashka = JsonConvert.DeserializeObject <Poteryashka>(streamReader.ReadToEnd());
                        }
                        if (poteryashka != null)
                        {
                            dbContext.Poteryashkas.Add(poteryashka);
                            await dbContext.SaveChangesAsync();

                            var dataString   = JsonConvert.SerializeObject(poteryashka);
                            var outputStream = response.OutputStream;
                            using (var streamWriter = new StreamWriter(outputStream))
                            {
                                await streamWriter.WriteLineAsync(dataString);
                            }
                            response.StatusCode = 200;
                            response.Close();
                            continue;
                        }
                        response.StatusCode = 400;
                        response.Close();
                        continue;
                    }
                    else if (dataType == "haveseenpoteryashka")
                    {
                        Seen seen        = null;
                        var  inputStream = request.InputStream;
                        using (var streamReader = new StreamReader(inputStream))
                        {
                            seen = JsonConvert.DeserializeObject <Seen>(streamReader.ReadToEnd());
                        }
                        if (seen != null)
                        {
                            var poteryashkas = dbContext.Poteryashkas.Find(seen.Who.Id);
                            seen.Who = null;
                            poteryashkas.Seen.Add(seen);
                            await dbContext.SaveChangesAsync();

                            var dataString = JsonConvert.SerializeObject(seen, new JsonSerializerSettings()
                            {
                                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                            });
                            var outputStream = response.OutputStream;
                            using (var streamWriter = new StreamWriter(outputStream))
                            {
                                await streamWriter.WriteLineAsync(dataString);
                            }
                            response.StatusCode = 200;
                            response.Close();
                            continue;
                        }
                        response.StatusCode = 400;
                        response.Close();
                        continue;
                    }
                    else
                    {
                        httpContext.Response.StatusCode = 404;
                        httpContext.Response.Close();
                        continue;
                    }
                }
                else if (request.HttpMethod == "PUT")
                {
                    var splitUrl = request.RawUrl.Split('/');
                    var dataType = splitUrl[1].ToLower();
                    if (dataType == "poteryashkafound")
                    {
                        FoundInfo info   = null;
                        var       stream = request.InputStream;
                        using (var streamReader = new StreamReader(stream))
                        {
                            info = JsonConvert.DeserializeObject <FoundInfo>(streamReader.ReadToEnd());
                        }
                        if (info != null)
                        {
                            var p = await dbContext.Poteryashkas.FindAsync(info.PoteryashkaId);

                            p.IsFound = true;
                            p.Found   = info.Date;
                            await dbContext.SaveChangesAsync();

                            response.StatusCode = 200;
                            response.Close();
                            continue;
                        }
                        response.StatusCode = 400;
                        response.Close();
                    }
                    else if (dataType == "updatepoteryashka")
                    {
                        Poteryashka poteryashka = null;
                        var         inputStream = request.InputStream;
                        using (var streamReader = new StreamReader(inputStream))
                        {
                            poteryashka = JsonConvert.DeserializeObject <Poteryashka>(streamReader.ReadToEnd());
                        }
                        if (poteryashka != null)
                        {
                            var originalPoteryashka = await dbContext.Poteryashkas.FindAsync(poteryashka.Id);

                            originalPoteryashka.Name           = poteryashka.Name;
                            originalPoteryashka.Surname        = poteryashka.Surname;
                            originalPoteryashka.Age            = poteryashka.Age;
                            originalPoteryashka.AdditionalInfo = poteryashka.AdditionalInfo;
                            originalPoteryashka.Phone          = poteryashka.Phone;
                            originalPoteryashka.Lost           = poteryashka.Lost;
                            await dbContext.SaveChangesAsync();

                            response.StatusCode = 200;
                            response.Close();
                            continue;
                        }
                        response.StatusCode = 400;
                        response.Close();
                        continue;
                    }
                    else
                    {
                        httpContext.Response.StatusCode = 404;
                        httpContext.Response.Close();
                        continue;
                    }
                }
            }
        }