// GET: Manage/ApplicationItem/Create
        public ActionResult Create()
        {
            ViewData["Opportunities"] = _uow.Opps.All
                       .ToSelectList(c => c.Id.ToString(), c => c.Name.ToString(), string.Empty);

            var vm = new AppFormBindingModel();
            return View(vm);
        }
        public async Task<ActionResult> Create(AppFormBindingModel form, HttpPostedFileBase file)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var opp = await _uow.Opps.FindAsyncById(form.OpportunityId);
                    var app = new ApplicationForm
                        {
                            Id = Guid.NewGuid(),
                            Code = form.Code,
                            Name = form.Name,
                            Description = form.Description,
                            Opportunity = opp

                        };

                    //if (file != null)
                    //{
                    //    var saveFileName = Path.Combine(Server.MapPath("/documents/public/"), file.FileName);
                    //    file.SaveAs(saveFileName);

                    //    app.Path = saveFileName;
                    //    app.IsFolder = false;
                    //    app.ContentLength = file.ContentLength;
                    //    app.ContentType = MimeMapping.GetMimeMapping(file.FileName);

                    //}

                    _uow.AppForms.Add(app);
                    await _uow.SaveAsync();


                }

                return RedirectToAction<ApplicationFormController>(c => c.Index()).WithSuccess("Created");
            }
            catch (Exception ex)
            {
                return RedirectToAction<ApplicationFormController>(c => c.Index()).WithError("Failed " + ex.Message);
            }
        }
        public async Task<ActionResult> Edit(Guid id, AppFormBindingModel form, HttpPostedFileBase file)
        {
            try
            {
                // TODO: Add update logic here
                if (ModelState.IsValid)
                {
                    var opt = _uow.Opps.FindById(form.OpportunityId);

                    var item = _uow.AppForms.FindById(id);
                    item.Name = form.Name;
                    item.Code = form.Code;
                    item.Description = form.Description;
                    item.Opportunity = opt;

                    //if (file != null)
                    //{
                    //    var savePath = Path.Combine(Server.MapPath("/documents/public/"), file.FileName);

                    //    file.SaveAs(savePath);
                    //    item.Path = savePath;
                    //    item.ContentLength = file.ContentLength;
                    //    item.ContentType = file.ContentType;

                    //    System.IO.File.Delete(item.Path);
                    //}

                    await _uow.SaveAsync();

                    return RedirectToAction<ApplicationFormController>(c => c.Index()).WithSuccess("Updated");
                }

                return RedirectToAction<ApplicationFormController>(c => c.Index()).WithError("Update failed");

            }
            catch
            {
                return View();
            }
        }