Esempio n. 1
0
        //[ValidateAntiForgeryToken]
        public ActionResult CreateSend([Bind(Include = "Id,FileId,Description,Subject,DateCreated,UnitId,FileTypeId,Destination,DateSend")] CreateSend Cdocument)
        {
            try
            {
                Document document = new Document();
                document.Description = Cdocument.Description;
                document.FileId      = Cdocument.FileId;
                document.Subject     = Cdocument.Subject;
                document.FileTypeId  = Cdocument.FileTypeId;
                document.UnitId      = Cdocument.UnitId;

                document.UserID      = HttpContext.User.Identity.Name;
                document.DateCreated = DateTime.Now;
                if (ModelState.IsValid)
                {
                    if (document.FileId == null)
                    {
                        var    td     = db.FileTypes.Where(x => x.FileTypeId == document.FileTypeId).FirstOrDefault();
                        string prefix = "";

                        switch (td.Description.ToUpper())
                        {
                        case "PROPOSALS":
                            prefix = "PRP";
                            break;

                        case "LETTERS":
                            prefix = "LTR";
                            break;

                        case "MEMO":
                            prefix = "MEM";
                            break;

                        default:
                            prefix = "TEMP";
                            break;
                        }
                        string ts = MiscClass.GenerateNumber(5);
                        document.FileId = prefix + "/" + DateTime.Today.Year.ToString() + "/" + ts;
                    }
                    var isExist = db.Documents.Where(x => x.FileId == document.FileId).FirstOrDefault();

                    if (isExist == null)
                    {
                        DocumentMovement doc = new DocumentMovement();
                        doc.DateCreated = document.DateCreated;
                        doc.Type        = Movement.Incoming;
                        doc.Source      = MiscClass.getUserUnit().ToString();
                        doc.Destination = document.UnitId.ToString();
                        doc.PrefID      = document.FileId;
                        doc.Status      = Status.Confirmed;
                        doc.DateStatus  = document.DateCreated;
                        doc.Description = document.Description;
                        doc.FileType    = document.FileTypeId;
                        doc.Subject     = document.Subject;

                        db.DocumentMovements.Add(doc);
                        db.Documents.Add(document);

                        db.SaveChanges();
                        Audit.Trail(doc.PrefID, eAction.Create, doc.Id.ToString());

                        var outgoing = db.DocumentMovements.Where(x => x.PrefID == document.FileId).FirstOrDefault();
                        if (outgoing != null)
                        {
                            var ds = Convert.ToDateTime(Cdocument.DateSend);
                            outgoing.DateCreated = ds;
                            outgoing.Source      = outgoing.Destination;
                            outgoing.Destination = Cdocument.Destination;
                            outgoing.Type        = Movement.Outgoing;
                            outgoing.Status      = Status.Pending;

                            db.DocumentMovements.Add(outgoing);
                            Audit.Trail(outgoing.PrefID, eAction.Create, outgoing.Id.ToString());
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(String.Empty, "FileID Already Exists");
                        ViewBag.FileTypeId = new SelectList(db.FileTypes, "FileTypeId", "Description", document.FileTypeId);
                        ViewBag.UnitId     = new SelectList(db.Units, "UnitId", "Description", document.UnitId);
                        return(View(document));
                    }


                    return(RedirectToAction("Index"));
                }

                ViewBag.FileTypeId = new SelectList(db.FileTypes, "FileTypeId", "Description", document.FileTypeId);
                ViewBag.UnitId     = new SelectList(db.Units, "UnitId", "Description", document.UnitId);
                return(View(document));
            }
            catch (Exception e)
            {
                var ed = e;
                throw;
            }
        }
Esempio n. 2
0
        //[ValidateAntiForgeryToken]
        public ActionResult CreateSendBackLog([Bind(Include = "Id,FileId,Description,Subject,DateCreated,UnitId,FileTypeId,Destination,DateSend")] CreateSend Cdocument)
        {
            try
            {
                Document document = new Document();
                document.Description = Cdocument.Description;
                document.FileId      = Cdocument.FileId;
                document.Subject     = Cdocument.Subject;
                document.FileTypeId  = Cdocument.FileTypeId;
                document.UnitId      = Cdocument.UnitId;

                document.UserID = HttpContext.User.Identity.Name;
                //var s = Convert.ToDateTime(Cdocument.DateCreated);
                document.DateCreated = Cdocument.DateCreated;

                //if (ModelState.IsValid)


                if ((document.FileId == null && document.FileTypeId == 1) || document.DateCreated == null)
                {
                    ModelState.AddModelError("", "Please Complete all Details File ID or Date");
                }
                else
                {
                    if (document.FileId == null)
                    {
                        var    td     = db.FileTypes.Where(x => x.FileTypeId == document.FileTypeId).FirstOrDefault();
                        string prefix = "";

                        switch (td.Description.ToUpper())
                        {
                        case "PROPOSALS":
                            prefix = "PRP";
                            break;

                        case "LETTERS":
                            prefix = "LTR";
                            break;

                        case "MEMO":
                            prefix = "MEM";
                            break;

                        default:
                            prefix = "TEMP";
                            break;
                        }
                        string ts = MiscClass.GenerateNumber(5);
                        document.FileId = prefix + "/" + DateTime.Today.Year.ToString() + "/" + ts;
                    }
                    else
                    {
                        var           sp = document.FileId.ToArray();
                        StringBuilder sd = new StringBuilder();
                        foreach (var item in sp)
                        {
                            if (item.ToString() == "&")
                            {
                                sd.Append("_");
                            }
                            else
                            {
                                sd.Append(item.ToString());
                            }
                        }
                        document.FileId = sd.ToString();
                    }
                    var isExist = db.Documents.Where(x => x.FileId == document.FileId).FirstOrDefault();

                    if (isExist == null)
                    {
                        DocumentMovement doc = new DocumentMovement();
                        doc.DateCreated = document.DateCreated;
                        doc.Type        = Movement.Incoming;
                        doc.Source      = MiscClass.getUserUnit().ToString();
                        doc.Destination = document.UnitId.ToString();
                        doc.PrefID      = document.FileId;
                        doc.Status      = Status.Confirmed;
                        doc.DateStatus  = document.DateCreated;
                        doc.Description = document.Description;
                        doc.FileType    = document.FileTypeId;
                        doc.Subject     = document.Subject;

                        db.DocumentMovements.Add(doc);
                        db.Documents.Add(document);

                        db.SaveChanges();
                        Audit.Trail(doc.PrefID, eAction.Create, doc.Id.ToString());


                        var outgoing = db.DocumentMovements.Where(x => x.PrefID == document.FileId).FirstOrDefault();
                        if (outgoing != null)
                        {
                            outgoing.DateCreated = Cdocument.DateSend;
                            outgoing.Source      = outgoing.Destination;
                            outgoing.Destination = Cdocument.Destination;
                            outgoing.Type        = Movement.Outgoing;
                            outgoing.Status      = Status.Pending;

                            db.DocumentMovements.Add(outgoing);
                            Audit.Trail(outgoing.PrefID, eAction.Create, outgoing.Id.ToString());
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        ViewBag.FileTypeId = new SelectList(db.FileTypes, "FileTypeId", "Description", document.FileTypeId);
                        ViewBag.UnitId     = new SelectList(db.Units, "UnitId", "Description", document.UnitId);
                        return(View(document));
                    }


                    return(RedirectToAction("Index"));
                }

                ViewBag.FileTypeId = new SelectList(db.FileTypes, "FileTypeId", "Description", document.FileTypeId);
                ViewBag.UnitId     = new SelectList(db.Units, "UnitId", "Description", document.UnitId);
                ViewBag.DeptId     = new SelectList(db.Departments.OrderBy(x => x.Description).ToList(), "DeptID", "Description");

                return(View(document));
            }
            catch (Exception e)
            {
                var ed = e;
                throw;
            }
        }