示例#1
0
        public ActionResult Create(UkolVedeni collection, bool poslatMail, string produktyInput)
        {
            ViewBag.FirstCreate = false;

            try
            {
                if (ModelState.IsValid)
                {
                    var uvDao = new UkolVedeniDao();
                    collection.DateStart       = DateTime.Now;
                    collection.DateLastChanged = DateTime.Now;
                    collection.DateFinish      = null;             //teď fakt úkol vedení není vytvořen
                    collection.DateDeadline    = null;             //nezadáváme
                    collection.Status          = StatusUkolu.Open; //když vytváříme - úkol vedení je standartně otevřený
                    collection.LessonLearned   = false;            //zatim jsme se z toho asi fakt neponaučili
                    var latest = uvDao.GetLatestLopThisYear();
                    collection.Action  = latest?.Action + 1 ?? 1;
                    collection.Deleted = false;
                    collection.Id      = (int)uvDao.Create(collection);
                    TempData[MessagesHelper.Success] = "úkol vedení přidaný";

                    if (produktyInput != "")
                    {
                        try
                        {
                            var ukolMaterialDao = new UkolVedeniMaterialDao();
                            foreach (
                                var ukolProdukt in
                                produktyInput.Split(';')
                                .Where(item => item != "")
                                .Select(item => new UkolVedeniMaterial()
                            {
                                Ukol = collection,
                                Produkt = new MaterialDao().GetById(Convert.ToInt32(item)),
                                DateAdded = DateTime.Now
                            }))
                            {
                                ukolMaterialDao.Create(ukolProdukt);
                            }
                        }
                        catch
                        {
                            TempData[MessagesHelper.Danger] = "Nepodařilo se připojení produktů k úkolu vedení";
                        }
                    }

                    new UkolVedeniMaterialDao().ClearWrongHistoryAfterCreate(); //po vytvoření je třeba vymazat řádky v historii matroše

                    //posíláme vždy
                    //if (!poslatMail) return RedirectToAction("Detail", new {id = collection.Id});
                    var s = "Byl Vám přidělen nový úkol vedení " +
                            "<a href='/UkolVedeni/Detail/" + collection.Id + "'>" + collection.Nazev + "</a>";
                    Notifikace.Create(collection.Resitel.Id, s);
                    return(RedirectToAction("Detail", new { id = collection.Id }));
                }
                else
                {
                    TempData[MessagesHelper.Warning] = "Zkontrolujte zadané údaje";

                    return(View(collection));
                }
            }
            catch
            {
                TempData[MessagesHelper.Danger] = "Došlo k neočekávané chybě";
            }

            return(View(collection));
        }