public ActionResult Comment(string document, Comment c) { if (document != null) { if (c.Comment1 != null) { int documentIdToFind = 0; try { documentIdToFind = Convert.ToInt32(new Encryption().DecryptString(document, User.Identity.Name)); } catch (FormatException fe) { TempData["error_message"] = "Document does not exist"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = fe.Message, Time = DateTime.Now, Message = "User tried to manually search for a document in the address bar" } ); return(RedirectToAction("Index")); } catch (Exception ex) { TempData["error_message"] = "Document unavailable"; new LogsOperations().AddLog( new Log() { Controller = "Comment", Exception = ex.Message, Time = DateTime.Now, Message = "documentId decryption error" } ); return(RedirectToAction("Index")); } DocumentsOperations dops = new DocumentsOperations(); if (dops.DoesDocumentExist(documentIdToFind)) { try { Document d = dops.GetDocument(documentIdToFind); if (dops.IsReviewerAllocatedToDocument(User.Identity.Name, documentIdToFind)) { ViewData["document_id"] = new Encryption().EncryptString(d.Id.ToString(), User.Identity.Name); try { dops.AddComment(d, c, User.Identity.Name); ModelState.Clear(); } catch (Exception ex) { ViewData["error_message"] = ex.Message; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = ex.Message, Time = DateTime.Now, Message = "Adding comment exception" } ); return(RedirectToAction("Review")); } return(View()); } else { TempData["error_message"] = "You are not a reviewer of this document"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "User is not document's reviewer", Time = DateTime.Now, Message = "User is not document's reviewer" } ); return(RedirectToAction("Review")); } } catch (DocumentExistsException ex) { TempData["error_message"] = ex.Message; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = ex.Message, Time = DateTime.Now, Message = ex.Message } ); return(RedirectToAction("Review")); } catch (Exception ex) { TempData["error_message"] = ex.Message; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = ex.Message, Time = DateTime.Now, Message = "Error checking reviewing permissions" } ); return(RedirectToAction("Review")); } } else { TempData["error_message"] = "Document does not exist"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "Document does not exist", Time = DateTime.Now, Message = "Document does not exist" } ); return(RedirectToAction("Review")); } } else { TempData["error_message"] = "Comment cannot be empty"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "No comment entered", Time = DateTime.Now, Message = "No comment entered" } ); return(RedirectToAction("Review")); } } else { TempData["error_message"] = "No document selected"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "No document selected", Time = DateTime.Now, Message = "No document selected" } ); return(RedirectToAction("Review")); } //DocumentsOperations dops = new DocumentsOperations(); //Document d = dops.GetDocument(document); //ViewData["document_id"] = d.Id; //try //{ // dops.AddComment(d, c, User.Identity.Name); // ModelState.Clear(); //} //catch (Exception ex) //{ // ViewData["error_message"] = ex.Message; // new LogsOperations().AddLog( // new Log() // { // Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), // Exception = ex.Message, // Time = DateTime.Now, // Message = "Adding comment exception" // } // ); //} //return View(); }