示例#1
0
 private bool SomeSignerSign(ApplyDocument applyDocument)
 {
     if (applyDocument.Sign1 == null && applyDocument.Sign2 == null && applyDocument.Sign3 == null &&
         applyDocument.Sign4 == null && applyDocument.Sign5 == null)
     {
         return(false);
     }
     return(true);
 }
示例#2
0
        public IHttpActionResult GetApplyDocument(int id)
        {
            ApplyDocument applyDocument = db.ApplyDocuments.Find(id);

            if (applyDocument == null)
            {
                return(NotFound());
            }

            return(Ok(applyDocument));
        }
示例#3
0
        public IHttpActionResult Get(int docId, string userId)
        {
            ApplyDocument applyDocument = db.ApplyDocuments.Where(db => db.DocId == docId && db.UserId == userId).FirstOrDefault();

            if (applyDocument == null)
            {
                return(NotFound());
            }

            return(Ok(applyDocument));
        }
示例#4
0
        public IHttpActionResult DeleteApplyDocument(int id)
        {
            ApplyDocument applyDocument = db.ApplyDocuments.Find(id);

            if (applyDocument == null)
            {
                return(NotFound());
            }

            db.ApplyDocuments.Remove(applyDocument);
            db.SaveChanges();
            //need to delete ReckoningDocuments with same docId as well
            return(Ok(applyDocument));
        }
示例#5
0
        public IHttpActionResult PutApplyDocument(int id, ApplyDocument applyDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != applyDocument.DocId)
            {
                return(BadRequest());
            }

            db.Entry(applyDocument).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
                //if headofdepartemt sign the document and approve the trip send mail to all signers.
                if (applyDocument.DepartmentHeadSign != null && !SomeSignerSign(applyDocument)) //need to add check if no one of the signer has any data so its first time)
                {
                    var           ApproveUsers = db.Users.Where(b => b.ApplicationRoleId == (int)ApplicationRoles.Signer);
                    List <string> approveUsers = new List <string>();
                    foreach (User user in ApproveUsers)
                    {
                        approveUsers.Add(user.EmailAddress);
                    }
                    SendMail(approveUsers, Utilities.signersMail);
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ApplyDocumentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#6
0
        public IHttpActionResult PostApplyDocument(ApplyDocument applyDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ApplyDocuments.Add(applyDocument);
            db.SaveChanges();
            //creating empty ReckoningDocuments with same doc_id and userId
            ReckoningDocument reckoningDocument = new ReckoningDocument()
            {
                DocId = applyDocument.DocId, UserId = applyDocument.UserId
            };
            var result = new ReckoningDocumentsController().PostReckoningDocument(reckoningDocument);

            sendMailToHeadOfDepartment(applyDocument);

            return(CreatedAtRoute("DefaultApi", new { id = applyDocument.DocId }, applyDocument));
        }
示例#7
0
        private void sendMailToHeadOfDepartment(ApplyDocument applyDocument)
        {
            //send auto mail to head of department of the user who sent the doc
            var applyUser = db.Users
                            .Where(b => b.Id == applyDocument.UserId)
                            .FirstOrDefault();
            var headOfDepUser = db.Users
                                .Where(b => b.ApplicationRoleId == (int)ApplicationRoles.HeadOfDepartment && b.DepartmentId == applyUser.DepartmentId)
                                .FirstOrDefault();

            if (headOfDepUser != null)
            {
                List <string> emailAddress = new List <string>();
                emailAddress.Add(headOfDepUser.EmailAddress);
                bool messageSucced = SendMail(emailAddress, Utilities.HeadOfDepartmentMail);
                return;
            }
            else
            {
                return;
            }
        }