2015-06-04 35 views
0
[HttpPost] 
    public ActionResult Dep_Save_Attachments(int in_queue_id, HttpPostedFileBase httpfile, string authorized_by, string authorized_to, string confirmed_by, string approved_by) 
    { 
     if (httpfile != null) 
     { 

      var folder = Server.MapPath("~/Attachments/Laptops/" + in_queue_id + "/"); 
      var prev_fa = db.File_Attachments.Where(x => x.inventory_table_id == in_queue_id).Where(x => x.is_active == true).ToList(); 
      var prev_hfa = db.HW_Authorization_Forms.Where(x => x.file_attachments_id == prev_fa.FirstOrDefault().file_attachments_id).Where(x => x.is_active == true).ToList(); 

      if (!Directory.Exists(folder)) 
      { 
       Directory.CreateDirectory(folder); 
      } 

      if (prev_fa.Count != 0) 
      { 
       foreach (var pf in prev_fa) 
       { 
        pf.is_active = false; 

        db.Entry(pf).State = EntityState.Modified; 
        db.SaveChanges(); ; 
       } 
      } 

      if (prev_hfa.Count != 0) 
      { 
       foreach (var hpf in prev_hfa) 
       { 
        hpf.is_active = false; 

        db.Entry(hpf).State = EntityState.Modified; 
        db.SaveChanges(); ; 
       } 
      } 



      try 
      { 
       string path = System.Web.HttpContext.Current.Server.MapPath("~/Attachments/Laptops/" + in_queue_id + "/") + System.IO.Path.GetFileName(httpfile.FileName); 
       httpfile.SaveAs(path); 

       File_Attachments fa = new File_Attachments(); 

       fa.file_attachments_id = 1; 
       fa.inventory_table_name = "Laptops_Transactions"; 
       fa.inventory_table_id = in_queue_id; 
       fa.file_name = System.IO.Path.GetFileName(httpfile.FileName); 
       fa.file_path = "http://" + Request.Url.Host + ":" + Request.Url.Port + "/Attachments/Laptops/" + httpfile.FileName; 
       fa.created_by = @User.Identity.Name.Remove(0, 9).ToLower(); 
       fa.created_date = System.DateTime.Now; 
       fa.is_active = true; 

       db.File_Attachments.Add(fa); 
       db.SaveChanges(); 

       Laptops_Transactions laptops_trans = db.Laptops_Transactions.Find(in_queue_id); 
       laptops_trans.lp_trans_type = "deployed"; 
       laptops_trans.lp_date_returned = System.DateTime.Now; 

       db.Entry(laptops_trans).State = EntityState.Modified; 
       db.SaveChanges(); 

       HW_Authorization_Forms hwf = new HW_Authorization_Forms(); 
       hwf.hw_authorization_forms_id = 1; 
       hwf.file_attachments_id = fa.file_attachments_id; 
       hwf.hw_authorized_by = authorized_by; 
       hwf.hw_authorized_to = authorized_to; 
       hwf.hw_confirmed_by = confirmed_by; 
       hwf.hw_approved_by = approved_by; 
       hwf.hw_approved_date = fa.created_date; 
       hwf.created_by = fa.created_by; 
       hwf.created_date = fa.created_date; 
       hwf.hw_authorized_date = fa.created_date; 
       hwf.hw_confirmed_date = fa.created_date; 
       hwf.is_active = true; 

       db.HW_Authorization_Forms.Add(hwf); 
       db.SaveChanges(); 

      } 
      catch 
      { 

      } 
     } 
     else 
     { 

      return Content("<script language='javascript' type='text/javascript'>alert('Please Attach the Deployment Authorization Form! Kindly go back to previous page');</script>"); 
     } 

    return RedirectToAction("Index"); 

    } 

的錯誤是在這條線:錯誤:只有原始類型或枚舉類型在這方面的支持

var prev_hfa = db.HW_Authorization_Forms.Where(x => x.file_attachments_id == prev_fa.FirstOrDefault().file_attachments_id).Where(x => x.is_active == true).ToList(); 

這是我在控制器代碼,其實這是工作了,不過突然有一個錯誤。我真的不知道爲什麼我有這種錯誤之前,它完美的作品。

請幫我這個。需要一些建議。提前致謝。

回答

0

的錯誤是因爲數據類型問題我想,你需要確認你用正確的數據類型做,數據庫file_attachments_id,並從比較值必須是相同的。

此外,is_active必須是數據類型布爾值。糾正這可能會解決您的錯誤。

+0

所有的數據類型都很好。 – Jen143Me

+0

你確定嗎? file_attachments_id是數據庫和prev_fa域的非空整數? – developer

+0

在另一個表中,file_attachments_id爲空 – Jen143Me

相關問題