public ActionResult Create(int id, StoreContract contract)
 {
     var store = Store.Find(id);
     if (store == null) throw new InvalidOperationException("no store found");
     //var contract = new StoreContract();
     //TryUpdateModel(contract);
     contract.CreateAndFlush();
     store.AddContract(contract);
     //DateTime startDate = DateTime.Parse(collection["StartDate"]);
     //decimal agreedPricePerNonPrintedRoll = decimal.Parse(collection["AgreedPricePerNonPrintedRoll"]);
     //var contract = store.AddContract(startDate, agreedPricePerNonPrintedRoll);
     //http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files
     if (Request.Files.Count > 0 && Request.Files[0].HasFile())
     {
         var httpFile = Request.Files[0];
         string mimeType = httpFile.ContentType;
         Stream fileStream = httpFile.InputStream;
         string fileName = Path.GetFileName(httpFile.FileName);
         int fileLength = httpFile.ContentLength;
         byte[] fileData = new byte[fileLength];
         fileStream.Read(fileData, 0, fileLength);
         contract.AddDocument(fileName, mimeType, fileData);
     }
     store.SaveAndFlush();
     return View();
 }
        public void CanSaveNewContractWithoutADocument()
        {
            var store = new Store { Name = "store 1" };
            store.SaveAndFlush();
            var controller = new StoreContractController();
            controller.ControllerContext = new ControllerContext(contextMock.Context, new RouteData(), controller);
            var newContract = new StoreContract
            {
                StartDate = DateTime.Now.AddDays(-30),
                TermInMonths = 24,
                AgreedPricePerPrintedRoll = -0.5m,
                AgreedPricePerNonPrintedRoll = 15,
                AgreedShippingRate = 50
            };
            controller.Create(store.Id, newContract);

            Assert.IsNotEmpty(store.Contracts.ToList(), "The stores contract list is empty");
        }