예제 #1
0
        private void RemoveRow(int id)
        {
            switch ((Types)tabControl1.SelectedIndex)
            {
            case Types.Family:
                var result = entities.family.Find(id);
                if (result != null)
                {
                    entities.family.Remove(result);
                }
                break;

            case Types.Genus:
                var result2 = entities.genus.Find(id);
                if (result2 != null)
                {
                    entities.genus.Remove(result2);
                }
                break;

            case Types.Species:
                var result3 = entities.species.Find(id);
                if (result3 != null)
                {
                    entities.species.Remove(result3);
                }
                break;

            case Types.Synonym:
                var result4 = entities.synonym.Find(id);
                if (result4 != null)
                {
                    entities.synonym.Remove(result4);
                }
                break;

            default:
                var result5 = entities.major.Find(id);
                if (result5 != null)
                {
                    entities.major.Remove(result5);
                }
                break;
            }

            entities.SaveChanges();
        }
예제 #2
0
 public bool AddPlant(plant plant)
 {
     try
     {
         if (plant.speciesid == null)
         {
             return(false);
         }
         entities.plant.Add(plant);
         entities.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
예제 #3
0
        private void cmbFamily_Leave(object sender, EventArgs e)
        {
            string old  = lblFamily.Text.Replace("Familya: ", "");
            string text = cmbFamily.Text.Trim();

            if (text == string.Empty || text.Contains("DynamicProxies") || old == text)
            {
                return;
            }
            int    id = -1;
            family f  = entities.family.Where(x => x.name == text || x.name == text.Replace("I", "İ")).FirstOrDefault();

            if (f == null)
            {
                DialogResult dr = MessageBox.Show(cmbFamily.Text + " isminde bir familya bulunamadı yanlış yazdıysanız hayıra basın ve düzeltin. Yanlışlık yoksa kayıt oluşturulsun mu?", "Family Bulunamadı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                if (dr == DialogResult.No)
                {
                    cmbGenus.Enabled = false; cmbSpecies.Enabled = false; return;
                }

                family newFamily = new family();
                newFamily.major = entities.major.ToList()[0];
                newFamily.name  = text;
                entities.family.Add(newFamily);
                entities.SaveChanges();
                id = newFamily.id;
                Log.Debug("[Yeni Familya]: " + text, "ID:" + id + "\nMajor:" + newFamily.major.name + "\n->Familya:" + newFamily.name);
            }
            else
            {
                id = f.id;
            }
            cmbGenus.DataSource    = entities.genus.Where(x => x.familyid == id).OrderBy(x => x.name).ToList();
            cmbGenus.DisplayMember = "name";
            cmbGenus.ValueMember   = "id";
            cmbGenus.Invalidate();
            cmbGenus.Enabled  = true;
            cmbGenus.Text     = "";
            cmbSpecies.Text   = "";
            lblFamily.Text    = "Familya: " + cmbFamily.Text;
            lblFamily.Visible = true;

            lblSpeciesName.Text = string.Empty;
        }
예제 #4
0
        public static void CreateLog(LogType type, string text, string details = null)
        {
            herbariumEntities entities = new herbariumEntities();
            log log = new log()
            {
                datetime = DateTime.Now,
                user     = UserBLL.ActiveUser is null ? null : entities.user.Find(UserBLL.ActiveUser.id),
                type     = (int)type,
                logtext  = text,
                details  = details
            };

            entities.log.Add(log);
            entities.SaveChanges();
        }
예제 #5
0
 public void Sil(user user)
 {
     entities.user.Remove(user);
     entities.SaveChanges();
 }
예제 #6
0
        private void RemoveRow(int id)
        {
            try
            {
                bool yasak;
                var  list = entities.plant.Select(x => x.speciesid).ToList();
                switch ((Types)tabControl1.SelectedIndex)
                {
                case Types.Family:
                    var result = entities.family.Find(id);
                    if (result != null)
                    {
                        //synonym sil

                        entities.genus.Where(x => x.familyid == id).ToList().ForEach(x => entities.species.Where(y => y.genusid == x.id).ToList().ForEach(y => { yasak = list.IndexOf(y.id) != -1; if (yasak)
                                                                                                                                                                 {
                                                                                                                                                                     throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                                                                                                 }
                                                                                                                                                                 entities.synonym.Where(z => z.speciesid == y.id).ToList().ForEach(q => { yasak = list.IndexOf(q.id) != -1; if (yasak)
                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                              throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                   });  entities.synonym.RemoveRange(entities.synonym.Where(z => z.speciesid == y.id)); }));
                        //tür sil
                        entities.genus.Where(x => x.familyid == id).ToList().ForEach(x => entities.species.RemoveRange(entities.species.Where(y => y.genusid == x.id).ToList()));
                        //cins sil
                        entities.genus.RemoveRange(entities.genus.Where(x => x.familyid == id).ToList());
                        //family sil
                        entities.family.Remove(result);
                    }
                    break;

                case Types.Genus:
                    var result2 = entities.genus.Find(id);
                    if (result2 != null)
                    {
                        //synonym sil
                        entities.species.Where(x => x.genusid == id).ToList().ForEach(x => { yasak = list.IndexOf(x.id) != -1; if (yasak)
                                                                                             {
                                                                                                 throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                             }
                                                                                             entities.synonym.Where(y => y.speciesid == x.id).ToList().ForEach(y => { yasak = list.IndexOf(y.id) != -1; if (yasak)
                                                                                                                                                                      {
                                                                                                                                                                          throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                                                                                                      }
                                                                                                                                                               }); entities.synonym.RemoveRange(entities.synonym.Where(y => y.speciesid == x.id).ToList()); });
                        //tür sil
                        entities.species.RemoveRange(entities.species.Where(x => x.genusid == id).ToList());
                        //cins sil
                        entities.genus.Remove(result2);
                    }
                    break;

                case Types.Species:
                    var result3 = entities.species.Find(id);
                    if (result3 != null)
                    {
                        //synonym sil
                        entities.synonym.Where(x => x.speciesid == id).ToList().ForEach(q => { yasak = list.IndexOf(q.id) != -1; if (yasak)
                                                                                               {
                                                                                                   throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                               }
                                                                                        });
                        entities.synonym.RemoveRange(entities.synonym.Where(x => x.speciesid == id).ToList());
                        //cins sil
                        yasak = list.IndexOf(id) != -1;
                        if (yasak)
                        {
                            throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                        }
                        entities.species.Remove(result3);
                    }
                    break;

                case Types.Synonym:
                    var result4 = entities.synonym.Find(id);
                    if (result4 != null)
                    {
                        //synonym sil

                        yasak = list.IndexOf(id) != -1;
                        if (yasak)
                        {
                            throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                        }
                        entities.synonym.Remove(result4);
                    }
                    break;

                default:
                    var result5 = entities.major.Find(id);
                    if (result5 != null)
                    {
                        //synonym sil
                        entities.family.Where(x => x.majorid == id).ToList().ForEach(x => entities.genus.Where(y => y.familyid == x.id).ToList().ForEach(y => entities.species.Where(z => z.genusid == y.id).ToList().ForEach(z => { yasak = list.IndexOf(z.id) != -1; if (yasak)
                                                                                                                                                                                                                                     {
                                                                                                                                                                                                                                         throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                                                                                                                                                                     }
                                                                                                                                                                                                                                     entities.synonym.Where(q => q.speciesid == z.id).ToList().ForEach(q => { yasak = list.IndexOf(q.id) != -1; if (yasak)
                                                                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                                                                  throw new Exception("Bu taksonomiye bağlı bitki kaydı bulunuyor. Önce bitkileri silmelisiniz!");
                                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                                       }); entities.synonym.RemoveRange(entities.synonym.Where(q => q.speciesid == z.id).ToList()); })));
                        //tür sil
                        entities.family.Where(x => x.majorid == id).ToList().ForEach(x => entities.genus.Where(y => y.familyid == x.id).ToList().ForEach(y => entities.species.RemoveRange(entities.species.Where(z => z.genusid == y.id).ToList())));
                        //cins sil
                        entities.family.Where(x => x.majorid == id).ToList().ForEach(x => entities.genus.RemoveRange(entities.genus.Where(y => y.familyid == x.id).ToList()));
                        //family sil
                        entities.family.RemoveRange(entities.family.Where(x => x.majorid == id).ToList());
                        //major sil
                        entities.major.Remove(result5);
                    }
                    break;
                }

                entities.SaveChanges();
                GridView.Rows.Remove(GridView.CurrentRow);
                Log.Debug("[Silinen Taksonomi]: " + id, $"{id} numaralı ve {Enum.GetName(typeof(Types), (Types)tabControl1.SelectedIndex)} tipindeki taksonomi verisi {DateTime.Now.ToString()} tarihinde {UserBLL.ActiveUser.name} tarafından silindi.");
            }
            catch (Exception ex)
            {
                ShowMessage.Error("Silme işlemi başarısız oldu. Silmeye çalıştığınız taksonomi verisinin daha önce bir bitkide kullanılmadığından emin olun.\nHata detayları:\n" + ex.Message);
                Log.Error("[Taksonomi Silme Hatası]: " + ex.Message, ex);
            }
        }