[HttpPost, ValidateAntiForgeryToken]//GorevTodo todo
        public JsonResult Save(Gorevler gorevler, string[] work, string[] tahminiBitis, string silinenler, string[] todo)
        {
            if (CheckPerm(Perms.TodoGörevler, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (!ModelState.IsValid)
            {
                return(Json(new Result(false, "Form hatalı. Sayfayı yenileyin"), JsonRequestBehavior.AllowGet));
            }
            // yeni görev ekle
            if (gorevler.ID == 0)
            {
                if (work == null)
                {
                    return(Json(new Result(false, "Lütfen bir madde yazınız!"), JsonRequestBehavior.AllowGet));
                }
                if (work[0] == null || work[0] == "")
                {
                    return(Json(new Result(false, "Lütfen bir madde yazınız!"), JsonRequestBehavior.AllowGet));
                }
                // set
                gorevler.Aciklama   = gorevler.Aciklama ?? "";
                gorevler.Degistiren = vUser.UserName;
                gorevler.DegisTarih = DateTime.Now;
                gorevler.Kaydeden   = vUser.UserName;
                gorevler.KayitTarih = gorevler.DegisTarih;
                gorevler.OncelikID  = 0;

                if (CheckPerm(Perms.TodoGörevler, PermTypes.Deleting) == false && gorevler.GorevTipiID == ComboItems.gytGeliştirme.ToInt32())
                {
                    gorevler.DurumID = ComboItems.gydOnayVer.ToInt32();
                }
                else
                {
                    gorevler.DurumID = ComboItems.gydAtandı.ToInt32();
                }
                db.Gorevlers.Add(gorevler);
                // lists
                var sontarih = DateTime.Parse(tahminiBitis[0]);
                for (int i = 0; i < work.Length; i++)
                {
                    //yeni maddeyi ekle
                    var grvTdl = new GorevlerToDoList
                    {
                        Aciklama     = work[i],
                        DegisTarih   = DateTime.Now,
                        Degistiren   = vUser.UserName,
                        KayitTarih   = DateTime.Now,
                        Kaydeden     = vUser.UserName,
                        Gorevler     = gorevler,
                        TahminiBitis = DateTime.Parse(tahminiBitis[i])
                    };

                    if (grvTdl.Aciklama.Trim() != "")
                    {
                        db.GorevlerToDoLists.Add(grvTdl);
                        //görevin tahmini bitiş tarihini hesala
                        if (DateTime.Parse(tahminiBitis[i]) > sontarih)
                        {
                            sontarih = DateTime.Parse(tahminiBitis[i]);
                        }
                    }
                }

                gorevler.TahminiBitis = sontarih;


                // messages
                if (gorevler.DurumID == ComboItems.gydAtandı.ToInt32())
                {
                    var mesaj = new Message()
                    {
                        MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                        Kimden    = vUser.UserName,
                        Kime      = gorevler.Sorumlu,
                        Tarih     = DateTime.Now,
                        Mesaj     = "Size yeni bir görev açıldı: " + gorevler.Gorev,
                        URL       = "/ToDo/Duties"
                    };
                    db.Messages.Add(mesaj);
                    if (gorevler.Sorumlu2 != null)
                    {
                        var mesaj2 = new Message()
                        {
                            MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                            Kimden    = vUser.UserName,
                            Kime      = gorevler.Sorumlu2,
                            Tarih     = DateTime.Now,
                            Mesaj     = "Size yeni bir görev açıldı: " + gorevler.Gorev,
                            URL       = "/ToDo/Duties"
                        };
                        db.Messages.Add(mesaj2);
                    }

                    if (gorevler.Sorumlu3 != null)
                    {
                        var mesaj3 = new Message()
                        {
                            MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                            Kimden    = vUser.UserName,
                            Kime      = gorevler.Sorumlu3,
                            Tarih     = DateTime.Now,
                            Mesaj     = "Size yeni bir görev açıldı: " + gorevler.Gorev,
                            URL       = "/ToDo/Duties"
                        };
                        db.Messages.Add(mesaj3);
                    }
                }
                else if (gorevler.DurumID == ComboItems.gydOnayVer.ToInt32())
                {
                    var kullList = Persons.GetList("Admin");
                    foreach (var item in kullList)
                    {
                        db.Messages.Add(new Message()
                        {
                            MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                            Kimden    = vUser.UserName,
                            Kime      = item.Kod,
                            Tarih     = DateTime.Now,
                            Mesaj     = "Onayınıza bir görev düştü: " + gorevler.Gorev,
                            URL       = "/ToDo/Duties"
                        });
                    }
                }
            }
            // görev güncelle
            else
            {
                // sil
                string[] sl = new string[0];
                if (silinenler != null && silinenler != "")
                {
                    sl = silinenler.Split(',');
                }

                for (int j = 0; j < sl.Length - 1; j++)
                {
                    var tmpId  = Convert.ToInt32(sl[j]);
                    var silGrv = db.GorevlerToDoLists.FirstOrDefault(m => m.ID == tmpId);
                    db.GorevlerToDoLists.Remove(silGrv);
                }

                var sontarih = new DateTime();
                // görevi bul ve değiştir
                var tbl = db.Gorevlers.FirstOrDefault(m => m.ID == gorevler.ID);
                tbl.Sorumlu          = gorevler.Sorumlu;
                tbl.Sorumlu2         = gorevler.Sorumlu2;
                tbl.Sorumlu3         = gorevler.Sorumlu3;
                tbl.KontrolSorumlusu = gorevler.KontrolSorumlusu;
                tbl.Gorev            = gorevler.Gorev;
                tbl.Aciklama         = gorevler.Aciklama ?? "";
                tbl.GorevTipiID      = gorevler.GorevTipiID;
                tbl.DepartmanID      = gorevler.DepartmanID;
                tbl.Degistiren       = vUser.UserName;
                tbl.DegisTarih       = DateTime.Now;
                if (work != null)
                {
                    for (int i = 0; i < work.Length; i++)
                    {
                        // yeni madde ekle
                        if (todo[i] == "0")
                        {
                            if (work[i].Trim() != "")
                            {
                                if (tbl.DurumID != ComboItems.gydBaşlandı.ToInt32() || tbl.DurumID != ComboItems.gydAtandı.ToInt32())
                                {
                                    tbl.DurumID = ComboItems.gydBaşlandı.ToInt32();
                                }
                                var grvTdl = new GorevlerToDoList
                                {
                                    Aciklama     = work[i],
                                    Kaydeden     = vUser.UserName,
                                    KayitTarih   = DateTime.Now,
                                    Degistiren   = vUser.UserName,
                                    DegisTarih   = DateTime.Now,
                                    TahminiBitis = DateTime.Parse(tahminiBitis[i]),
                                    Gorevler     = tbl
                                };
                                db.GorevlerToDoLists.Add(grvTdl);
                                //görevin tahmini bitiş tarihini hesala
                                if (DateTime.Parse(tahminiBitis[i]) > sontarih)
                                {
                                    sontarih = DateTime.Parse(tahminiBitis[i]);
                                }
                                //messages
                                var mesaj = new Message()
                                {
                                    MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                                    Kimden    = vUser.UserName,
                                    Kime      = tbl.Sorumlu,
                                    Tarih     = DateTime.Now,
                                    Mesaj     = "Onay listenize bir maddde eklendi: " + work[i],
                                    URL       = "/ToDo/DutyWork/Todos"
                                };
                                db.Messages.Add(mesaj);
                                if (tbl.Sorumlu2 != null)
                                {
                                    var mesaj2 = new Message()
                                    {
                                        MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                                        Kimden    = vUser.UserName,
                                        Kime      = tbl.Sorumlu2,
                                        Tarih     = DateTime.Now,
                                        Mesaj     = "Onay listenize bir maddde eklendi: " + work[i],
                                        URL       = "/ToDo/DutyWork/Todos"
                                    };
                                    db.Messages.Add(mesaj2);
                                }

                                if (tbl.Sorumlu3 != null)
                                {
                                    var mesaj3 = new Message()
                                    {
                                        MesajTipi = ComboItems.DuyuruMesajı.ToInt32(),
                                        Kimden    = vUser.UserName,
                                        Kime      = tbl.Sorumlu3,
                                        Tarih     = DateTime.Now,
                                        Mesaj     = "Onay listenize bir maddde eklendi: " + work[i],
                                        URL       = "/ToDo/DutyWork/Todos"
                                    };
                                    db.Messages.Add(mesaj3);
                                }
                            }
                        }
                        // maddeyi güncelle
                        else
                        {
                            var id2 = Convert.ToInt32(todo[i]);
                            var grv = db.GorevlerToDoLists.FirstOrDefault(m => m.ID == id2);
                            if (grv.Onay == false)
                            {
                                grv.Aciklama     = work[i].ToString2();
                                grv.DegisTarih   = DateTime.Now;
                                grv.Degistiren   = vUser.UserName;
                                grv.TahminiBitis = DateTime.Parse(tahminiBitis[i]);
                            }
                            //görevin tahmini bitiş tarihini hesala
                            if (DateTime.Parse(tahminiBitis[i]) > sontarih)
                            {
                                sontarih = DateTime.Parse(tahminiBitis[i]);
                            }
                        }
                    }
                    tbl.TahminiBitis = sontarih;
                }
            }

            try
            {
                db.SaveChanges();
                LogActions("ToDo", "Duties", "Save", ComboItems.alEkle, gorevler.ID, "Gorev: " + gorevler.Gorev);
                return(Json(new Result(true, gorevler.ID), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger(ex, "ToDo/Duties/Save");
                return(Json(new Result(false, "Kayıt hatası. Sayfayı yenileyin"), JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult SaveAll(frmGorevDestekCalisma tbl)
        {
            if (CheckPerm(Perms.TodoÇalışma, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (!ModelState.IsValid)
            {
                return(Json(new Result(false, "Hata oldu. Sayfayı yenileyin"), JsonRequestBehavior.AllowGet));
            }
            if (tbl.Sure < 0)
            {
                return(Json(new Result(false, "Çalışma süresini doğru yazınız"), JsonRequestBehavior.AllowGet));
            }
            // get comboitemname
            var gtip  = db.ComboItem_Name.Where(m => m.ID == tbl.GorevID).Select(m => m.Name).FirstOrDefault();
            var durum = ComboItems.gydOnaylandı.ToInt32();
            // projeform
            var projeid = db.ProjeForms.Where(m => m.Proje == gtip && m.MusteriID == tbl.MusteriID).FirstOrDefault();

            if (projeid == null)
            {
                projeid = new ProjeForm()
                {
                    MusteriID    = tbl.MusteriID,
                    Proje        = gtip,
                    Form         = "",
                    MesaiKontrol = false,
                    Kaydeden     = vUser.UserName,
                    KayitTarih   = DateTime.Now,
                    Degistiren   = vUser.UserName,
                    DegisTarih   = DateTime.Now,
                    Aktif        = true
                };
                db.ProjeForms.Add(projeid);
            }

            // add görev
            var gorev = new Gorevler()
            {
                ProjeForm   = projeid,
                Sorumlu     = vUser.UserName,
                Gorev       = gtip,
                Aciklama    = gtip,
                OncelikID   = 1,
                DurumID     = durum,
                GorevTipiID = 52,
                DepartmanID = 49,
                Kaydeden    = vUser.UserName,
                KayitTarih  = DateTime.Now,
                Degistiren  = vUser.UserName,
                DegisTarih  = DateTime.Now
            };
            // add todolist
            var todo = new GorevlerToDoList()
            {
                Gorevler    = gorev,
                Aciklama    = gtip,
                Onay        = true,
                KontrolOnay = true,
                AdminOnay   = true,
                Onaylayan   = vUser.UserName,
                KontrolEden = vUser.UserName,
                Kaydeden    = vUser.UserName,
                KayitTarih  = DateTime.Now,
                Degistiren  = vUser.UserName,
                DegisTarih  = DateTime.Now
            };
            // add çalışma
            var cal = new GorevlerCalisma()
            {
                Gorevler   = gorev,
                Calisma    = tbl.Calisma,
                Sure       = tbl.Sure,
                Tarih      = tbl.Tarih,
                Kaydeden   = vUser.UserName,
                KayitTarih = DateTime.Now,
                Degistiren = vUser.UserName,
                DegisTarih = DateTime.Now
            };

            // add
            db.Gorevlers.Add(gorev);
            db.GorevlerToDoLists.Add(todo);
            db.GorevlerCalismas.Add(cal);
            // save
            try
            {
                db.SaveChanges();
                return(Json(new Result(true, cal.ID), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger(ex, "ToDo/DutyWork/Save");
                return(Json(new Result(false, "Kayıt hatası"), JsonRequestBehavior.AllowGet));
            }
        }