Пример #1
0
        public void Update(OyunModel model)
        {
            Oyun oyun = _db.Oyunlar.Find(model.Id);    //lazyloading kullanmasaydım "İnclude" kullanacaktım burada.

            oyun.Adi         = model.Adi;
            oyun.Kazanci     = model.Kazanci;
            oyun.Maliyeti    = model.Maliyeti;
            oyun.YapimTarihi = model.YapimTarihi;
            oyun.YapimciId   = model.YapimciId;

            _db.OyunlarTurler.RemoveRange(oyun.OyunTurler); //oyundakı oyuntur kayıtlarını siliyor.
            //oyun.OyunTurler = new List<OyunTur>();                1.YÖNTEM
            //foreach (int turId in model.TurIdleri)
            //{
            //    oyun.OyunTurler.Add(new OyunTur()
            //    {
            //        OyunId = oyun.Id,
            //        TurId = turId
            //    });
            //}

            oyun.OyunTurler = model.TurIdleri.Select(turId => new OyunTur()
            {
                OyunId = oyun.Id,
                TurId  = turId
            }).ToList();

            _db.Entry(oyun).State = System.Data.Entity.EntityState.Modified;
            _db.SaveChanges();
        }
 //[HttpPost] // aksiyon adı aynı olduğu için yazılmasına gerek yoktur
 public IActionResult Post([FromBody] OyunModel model)
 {
     if (ModelState.IsValid)
     {
         _oyunService.Add(model);
         //return Created(model); // başarılı işlemler için Created da dönülebilir Ok de.
         return(Ok(model));
     }
     return(BadRequest(ModelState));
 }
Пример #3
0
        public void Update(OyunModel model)
        {
            var entity = _db.Set <Oyun>().Find(model.Id);

            entity.Adi       = model.Adi.Trim();
            entity.Puani     = model.Puani;
            entity.Tarihi    = model.Tarihi;
            entity.YapimciId = model.YapimciId;
            _db.Set <Oyun>().Update(entity);
            _db.SaveChanges();
        }
Пример #4
0
        public async Task <HttpStatusCode> UpdateOyunAsync(OyunModel oyun)
        {
            oyun.Puani     = Convert.ToDouble(oyun.PuaniText.Replace(",", "."), CultureInfo.InvariantCulture);
            oyun.Tarihi    = DateTime.ParseExact(oyun.TarihiText, "dd.MM.yyyy", CultureInfo.InvariantCulture);
            oyun.YapimciId = Convert.ToInt32(oyun.YapimciIdText);

            //var result = await _httpClient.PutAsJsonAsync(_oyunApiUrl, oyun); // OData servisi kullandığımız için hata veriyor
            string      oyunJson        = JsonSerializer.Serialize(oyun, _jsonSerializerOptions);
            HttpContent oyunHttpContent = new StringContent(oyunJson, Encoding.UTF8, "application/json");
            var         result          = await _httpClient.PutAsync(_oyunApiUrl + "/" + oyun.Id, oyunHttpContent);

            return(result.StatusCode);
        }
        //[HttpPut] // aksiyon adı aynı olduğu için yazılmasına gerek yoktur
        public IActionResult Put([FromODataUri] int key, [FromBody] OyunModel model)
        {
            if (ModelState.IsValid)
            {
                model.Id = key;
                _oyunService.Update(model);

                //Request.Headers.Add("Prefer", "return=representation"); // aşağıdaki Updated() methodu ile modeli dönebilmek için eklenmesi gerekmektedir
                //return Updated(model); // başarılı işlemler için Updated da dönülebilir Ok de.
                return(Ok(model));
            }
            return(BadRequest(ModelState));
        }
 private void FillDetails()
 {
     try
     {
         if (gvOyunlar.SelectedIndex == -1)
         {
             lMesaj.Text = "Kayıt seçiniz.";
             return;
         }
         int       id    = Convert.ToInt32(gvOyunlar.SelectedRow.Cells[1].Text);
         OyunModel model = _oyunService.GetQuery().SingleOrDefault(oyun => oyun.Id == id);
         tbAdiDuzenleme.Text     = model.Adi;
         tbKazanciDuzenleme.Text = "";
         if (model.Kazanci.HasValue)
         {
             tbKazanciDuzenleme.Text = model.Kazanci.Value.ToString(new CultureInfo("tr"));
         }
         tbMaliyetiDuzenleme.Text = "";
         if (model.Maliyeti.HasValue)
         {
             tbMaliyetiDuzenleme.Text = model.Maliyeti.Value.ToString(new CultureInfo("tr"));
         }
         cYapimTarihiDuzenleme.SelectedDates.Clear();
         if (model.YapimTarihi.HasValue)
         {
             cYapimTarihiDuzenleme.SelectedDate = model.YapimTarihi.Value;
         }
         ddlYapimciDuzenleme.SelectedValue = "";
         if (model.YapimciId.HasValue)
         {
             ddlYapimciDuzenleme.SelectedValue = model.YapimciId.Value.ToString();
         }
         lbTurlerDuzenleme.ClearSelection();//içindekileri önce kaldırır. Sonra aldığımız veri set edilir.
         foreach (ListItem item in lbTurlerDuzenleme.Items)
         {
             foreach (int turId in model.TurIdleri)
             {
                 if (item.Value == turId.ToString())
                 {
                     item.Selected = true;
                     break;
                 }
             }
         }
     }
     catch (Exception exc)
     {
         lMesaj.Text = "İşlem sırasında hata meydana geldi!" + exc.Message;
     }
 }
Пример #7
0
        public void Add(OyunModel model)
        {
            var entity = new Oyun()
            {
                Adi       = model.Adi.Trim(),
                Puani     = model.Puani,
                Tarihi    = model.Tarihi,
                YapimciId = model.YapimciId
            };

            _db.Set <Oyun>().Add(entity);
            _db.SaveChanges();
            model.Id = entity.Id;
        }
Пример #8
0
        public void Add(OyunModel model)
        {
            Oyun entity = new Oyun()
            {
                Adi         = model.Adi,
                Kazanci     = model.Kazanci,
                Maliyeti    = model.Maliyeti,
                YapimTarihi = model.YapimTarihi,
                YapimciId   = model.YapimciId,
                OyunTurler  = model.TurIdleri.Select(turId => new OyunTur()
                {
                    TurId = turId
                }).ToList()
            };

            _db.Oyunlar.Add(entity);
            _db.SaveChanges();
        }
        protected void lbDetay_Click(object sender, EventArgs e)
        {
            if (gvOyunlar.SelectedIndex == -1)
            {
                lMesaj.Text = " Kayıt seçiniz!";
                return;
            }
            int       id    = Convert.ToInt32(gvOyunlar.SelectedRow.Cells[1].Text);
            OyunModel model = _oyunService.GetQuery().SingleOrDefault(oyun => oyun.Id == id);

            lAdiDetay.Text             = model.Adi;
            lKazanciDetay.Text         = model.Kazanci.HasValue ? model.Kazanci.Value.ToString("C2", new CultureInfo("tr")) : "";
            lMaliyetiDetay.Text        = model.Maliyeti.HasValue ? model.Maliyeti.Value.ToString("C2", new CultureInfo("tr")) : "";
            lYapimTarihiDetay.Text     = model.YapimTarihiFormat;
            lYapimciDetay.Text         = model.Yapimci;
            lTurlerDetay.Text          = model.TurlerText;
            pDetay.Visible             = true;
            pEkle.Visible              = false;
            pDuzenle.Visible           = false;
            pYapimciDetay.Visible      = false;
            pYapimciGuncelle.Visible   = false;
            pYeniYapimciEkleme.Visible = false;
        }
        protected void bKaydetDuzenleme_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvOyunlar.SelectedIndex == -1)
                {
                    lMesaj.Text = " Kayıt seçiniz!";
                    return;
                }
                if (string.IsNullOrWhiteSpace(tbAdiDuzenleme.Text))
                {
                    lMesaj.Text = "Adı girilmelidir.";
                    return;
                }
                double?maliyeti = null, kazanci = null;
                if (!string.IsNullOrWhiteSpace(tbMaliyetiDuzenleme.Text))
                {
                    maliyeti = Convert.ToDouble(tbMaliyetiDuzenleme.Text.Replace(",", "."), CultureInfo.InvariantCulture);
                }
                if (!string.IsNullOrWhiteSpace(tbKazanciDuzenleme.Text))
                {
                    kazanci = Convert.ToDouble(tbKazanciDuzenleme.Text.Replace(",", "."), CultureInfo.InvariantCulture);
                }
                if (ddlYapimciDuzenleme.SelectedValue == "")
                {
                    lMesaj.Text = "Yapımcı seçilmelidir.";
                    return;
                }
                OyunModel model = new OyunModel()
                {
                    Id          = Convert.ToInt32(gvOyunlar.SelectedRow.Cells[1].Text),
                    Adi         = tbAdiDuzenleme.Text,
                    Maliyeti    = maliyeti,
                    Kazanci     = kazanci,
                    YapimTarihi = cYapimTarihiDuzenleme.SelectedDate,
                    YapimciId   = Convert.ToInt32(ddlYapimciDuzenleme.SelectedValue)
                };

                //model.TurIdleri = new List<int>();
                //foreach (ListItem listItem in lbTurlerDuzenleme.Items)
                //{
                //    if (listItem.Selected)
                //    {
                //        model.TurIdleri.Add(Convert.ToInt32(listItem.Value));
                //    }
                //}

                model.TurIdleri = lbTurlerDuzenleme.Items.Cast <ListItem>().Where(item => item.Selected).Select(item => Convert.ToInt32(item.Value)).ToList();

                _oyunService.Update(model);
                FillGrid();
                pDuzenle.Visible = false;
                lMesaj.Text      = "Oyun kaydedildi!";
            }
            catch (FormatException exc)
            {
                lMesaj.Text = "Maliyeti ve kazancı sayısal olmalıdır!";
            }
            catch (Exception exc)
            {
                lMesaj.Text = "İşlem sırasında hata meydana geldi!";
            }
        }
        protected void bKaydet_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(tbAdi.Text))
                {
                    lMesaj.Text = "Adı girilmelidir.";
                    return;
                }
                double?maliyeti = null, kazanci = null;                       //aynı tipteyken yanyana kullanabılırız.
                if (!string.IsNullOrWhiteSpace(tbMaliyeti.Text))
                {
                    //maliyeti = Convert.ToDouble(tbMaliyeti.Text.Replace(",", "."), new CultureInfo("en")); //alttakının aynısı.
                    maliyeti = Convert.ToDouble(tbMaliyeti.Text.Replace(",", "."), CultureInfo.InvariantCulture);
                }
                if (!string.IsNullOrWhiteSpace(tbKazanci.Text))
                {
                    kazanci = Convert.ToDouble(tbKazanci.Text.Replace(",", "."), CultureInfo.InvariantCulture);
                }
                if (ddlYapimci.SelectedValue == "")
                {
                    lMesaj.Text = "Yapımcı seçilmelidir.";
                    return;
                }
                List <int> turIdleri = new List <int>(); //birden fazla seçilebilecegı ıcın ıtem ıtem donmem lazım.

                //int[] selectedIndices = lbTurler.GetSelectedIndices();  //2. Yöntem
                //for (int i = 0; i < selectedIndices.Length; i++)
                //{
                //    turIdleri.Add(Convert.ToInt32(lbTurler.Items[selectedIndices[i]].Value));
                //}

                foreach (ListItem item in lbTurler.Items)     //1. Yöntem
                {
                    if (item.Selected)
                    {
                        turIdleri.Add(Convert.ToInt32(item.Value));
                    }
                }

                OyunModel model = new OyunModel()
                {
                    Adi      = tbAdi.Text,
                    Maliyeti = maliyeti,
                    Kazanci  = kazanci,
                    //YapimTarihi = cYapimTarihi.SelectedDate
                    YapimciId = Convert.ToInt32(ddlYapimci.SelectedValue),
                    TurIdleri = turIdleri
                };
                if (cYapimTarihi.SelectedDates.Count > 0)
                {
                    model.YapimTarihi = cYapimTarihi.SelectedDate;
                }
                _oyunService.Add(model);
                FillGrid();
                pEkle.Visible = false;
                lMesaj.Text   = "Oyun kaydedildi!";

                //throw new IndexOutOfRangeException();  Hata yakalamak istersen bunu fırlat aşağıdaki catch yakalar.
            }
            catch (FormatException exc)   //sayısal değer girmezse buraya atacak. Genel bir sorun varsa aşağıdakine atacak.
            {
                lMesaj.Text = "Maliyeti ve kazancı sayısal olmalıdır!";
            }
            catch (Exception exc)
            {
                lMesaj.Text = "İşlem sırasında hata meydana geldi!";
            }
        }