Example #1
0
 public void AddReviewDocument(ReviewDocument document)
 {
     if (addReviewDocument && pipeline.GetPipeLineType() == Pipeline.PipeLineType.DEVELOPMENT)
     {
         this.document = document;
     }
 }
Example #2
0
        public ActionResult Edit([Bind(Prefix = "ReviewDocument")] ReviewDocument model)
        {
            ReviewDocument dbReviewDocument = UOW.ReviewDocuments.GetById(model.Id);

            if (dbReviewDocument != null)
            {
                dbReviewDocument.Title       = model.Title;
                dbReviewDocument.Order       = model.Order;
                dbReviewDocument.Description = model.Description;
                dbReviewDocument.Version     = model.Version;
                dbReviewDocument.DocType     = model.DocType;
                dbReviewDocument.IsActive    = model.IsActive;

                UOW.Commit();
                model = dbReviewDocument;
            }

            ReviewDocumentVM vm = new ReviewDocumentVM
            {
                ReviewDocument = model,
                DesignReviews  = UOW.DesignReviews.GetAll()
            };

            return(View(vm));
        }
        public async Task CheckNoDuplicateReviewIsAllowed()
        {
            _output.WriteLine($"EndPointUrl: {_cosmosDBFixture.CosmosDbConfig.EndPointUrl}");
            _output.WriteLine($"CollectionName: {_cosmosDBFixture.CosmosDbConfig.CollectionName}");
            _output.WriteLine($"DatabaseName: {_cosmosDBFixture.CosmosDbConfig.DatabaseName}");
            _output.WriteLine($"AuthorizationKey: {_cosmosDBFixture.CosmosDbConfig.AuthorizationKey}");

            var repository = new ReviewRepository(_cosmosDBFixture.CosmosDbConfig);

            var controller = new ReviewsController(repository);

            var newReview1 = new ReviewDocument
            {
                Id      = "review2",
                Content = "Another review with existing Id"
            };

            var newReview2 = new ReviewDocument
            {
                Id      = "review3",
                Content = "This is boring"
            };

            await controller.PostAsync(newReview1);

            await controller.PostAsync(newReview2);

            var reviews = await controller.Get();

            // We rely on the fact that we already had review2
            // and another review in our test data
            Assert.Equal(3, reviews.Count);
        }
Example #4
0
        public void TestAddReviewDocumentWhenSprintIsActive()
        {
            Sprint         sprint   = new Sprint(DateTime.Today, DateTime.Today.AddDays(10));
            ReviewDocument document = new ReviewDocument();

            sprint.Start();

            sprint.AddReviewDocument(document);

            Assert.IsTrue(sprint.GetDocument() == null);
        }
Example #5
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            ReviewDocument contractDocument = UOW.ReviewDocuments.GetById(id);

            if (contractDocument == null)
            {
                return(HttpNotFound());
            }
            UOW.ReviewDocuments.Delete(contractDocument);
            UOW.Commit();
            return(RedirectToAction("Index"));
        }
Example #6
0
        public void TestAddReviewDocument()
        {
            Sprint         sprint   = new Sprint(DateTime.Today, DateTime.Today);
            ReviewDocument document = new ReviewDocument();

            sprint.Start();
            sprint.CheckTime();

            sprint.AddReviewDocument(document);

            Assert.IsTrue(sprint.GetDocument() != null);
        }
        public async Task <IActionResult> PostAsync([FromBody] ReviewDocument value)
        {
            try
            {
                var result = await _reviewRepository.AddAsync(value);

                return(Ok(result));
            }
            catch (Exception e)
            {
                return(StatusCode(500, $"Failed to add document {value.Id} - {e.Message}"));
            }
        }
Example #8
0
        public ActionResult Create([Bind(Prefix = "ReviewDocument")] ReviewDocument model)
        {
            if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
            {
                HttpPostedFileBase file = Request.Files[0];

                Guid   docId            = Guid.NewGuid();
                string originalFilename = file.FileName;
                string fileExt          = Path.GetExtension(file.FileName);
                string filename         = docId.ToString() + fileExt;

                string fullPath = StorageRoot + "\\" + filename;
                file.SaveAs(fullPath);

                ReviewDocument newDoc = new ReviewDocument();

                newDoc.Id               = docId;
                newDoc.Filename         = filename;
                newDoc.FilenameOriginal = originalFilename;
                newDoc.FileExt          = fileExt;
                newDoc.FileMimeType     = GetMimeType(fullPath);
                newDoc.FileSize         = file.ContentLength;
                newDoc.Title            = model.Title;
                newDoc.Order            = model.Order;
                newDoc.Description      = model.Description;
                newDoc.Version          = model.Version;
                newDoc.DocType          = model.DocType;
                newDoc.CreatedDate      = DateTime.Now;
                newDoc.FilePath         = "/files";
                newDoc.IsActive         = true;
                newDoc.DesignReviewId   = model.DesignReviewId;

                UOW.ReviewDocuments.Add(newDoc);

                UOW.Commit();
                model = newDoc;
            }
            else
            {
                ModelState.AddModelError(string.Empty, "You must supply a valid file.");
            }

            ReviewDocumentVM vm = new ReviewDocumentVM
            {
                ReviewDocument = model,
                DesignReviews  = UOW.DesignReviews.GetAll()
            };

            return(View("Edit", vm));
        }
Example #9
0
        public async Task <IActionResult> OnPostAddAsync()
        {
            if (!ModelState.IsValid)
            {
                return(await OnGetAsync());
            }
            var entity = new ReviewDocument()
            {
                Content = ReviewToAdd.Content
            };
            await _reviewRepository.AddAsync(entity);

            return(RedirectToPage());
        }
Example #10
0
        public IHttpActionResult AddComment(Guid rid, [FromBody] ReviewCommentBM model)
        {
            DesignReview dbReview = UOW.DesignReviews.GetOwnById(rid, UserRecord.Id);

            if (dbReview == null)
            {
                return(new SkyApiNotFound(Request));
            }
            ReviewDocument dbOption = UOW.ReviewDocuments.GetById(model.oid);

            if (dbOption == null)
            {
                return(new SkyApiNotFound(Request));
            }

            if (dbReview.AcceptedDate != null)
            {
                ModelState.AddModelError("", "Review has been accepted and further changes are not allowed.");
                return(new SkyApiBadRequest(Request, new SkyModelStateError(ModelState)));
            }

            ReviewComment reviewComment = new ReviewComment
            {
                Comment = model.comment,
                // TODO: looks like a typo (OrderId should be OptionId)
                OrderId        = dbOption.Id,
                DesignReviewId = rid,
                UserId         = new Guid(UserRecord.Id),
                Username       = UserRecord.UserName
            };

            dbReview.ReviewComments.Add(reviewComment);

            UOW.Commit();

            IDictionary <string, string> formData = new Dictionary <string, string>();

            formData.Add("User", UserRecord.FullName);
            formData.Add("Project", dbReview.Project.Name);
            formData.Add("Review", dbReview.Title);
            formData.Add("Option", dbOption.Title);
            formData.Add("Commment", model.comment);
            MailService.SendNotification(formData, "Skyberry Notification: New Comment");

            return(new SkyApiPayload <ReviewCommentVM>(Request, ModelFactory.CreateReviewCommentVM(reviewComment)));
        }
        public ReviewDocumentVM CreateReviewDocumentVM(ReviewDocument item)
        {
            return(new ReviewDocumentVM
            {
                Id = item.Id,
                Title = item.Title,
                Description = item.Description,
                Version = item.Version,
                CreatedDate = item.CreatedDate,
                Filename = item.Filename,
                FilenameOriginal = item.FilenameOriginal,
                FileExt = item.FileExt,
                FilePath = item.FilePath,

                DocType = item.DocType,
                Order = item.Order,
            });
        }
Example #12
0
        public ActionResult Delete(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ReviewDocument contractDocument = UOW.ReviewDocuments.GetById(id);

            if (contractDocument == null)
            {
                return(HttpNotFound());
            }
            ReviewDocumentVM vm = new ReviewDocumentVM
            {
                ReviewDocument = contractDocument,
                DesignReviews  = UOW.DesignReviews.GetAll()
            };

            return(View(vm));
        }
Example #13
0
        public ActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ReviewDocument dbDoc = UOW.ReviewDocuments.GetById(id);

            if (dbDoc == null)
            {
                return(HttpNotFound());
            }
            ReviewDocumentVM vm = new ReviewDocumentVM
            {
                ReviewDocument = dbDoc,
                DesignReviews  = UOW.DesignReviews.GetAll()
            };

            return(View(vm));
        }
 public ReviewDocumentVM()
 {
     ReviewDocument         = new ReviewDocument();
     ReviewDocumentTypeOpts = ListOpts.ReviewDocumentTypeOpts;
 }
        public ReviewDocumentVM CreateReviewDocumentVM(ReviewDocument item)
        {
            return new ReviewDocumentVM
            {
                Id = item.Id,
                Title = item.Title,
                Description = item.Description,
                Version = item.Version,
                CreatedDate = item.CreatedDate,
                Filename = item.Filename,
                FilenameOriginal = item.FilenameOriginal,
                FileExt = item.FileExt,
                FilePath = item.FilePath,

                DocType = item.DocType,
                Order = item.Order,
            };
        }
 public Task <ReviewDocument> PutAsync(int id, [FromBody] ReviewDocument value)
 {
     return(_reviewRepository.UpdateAsync(value));
 }
Example #17
0
        public ActionResult MyAccountDesignReview_Post([Bind(Prefix = "DesignReview")] DesignReview designReview)
        {
            bool         received = false;
            SkyberryUser user     = UOW.SkyberryUsers.GetById(User.Identity.GetUserId());
            string       from     = "*****@*****.**";

            if (user.Contacts != null && user.Contacts.Count > 0)
            {
                foreach (var item in user.Contacts)
                {
                    if (item.ContactType == "Email")
                    {
                        from = item.ContactData;
                    }
                }
            }

            DesignReview   dbDesignReview   = UOW.DesignReviews.GetById(designReview.Id);
            ReviewDocument dbReviewDocument = UOW.ReviewDocuments.GetById(designReview.SelectedReviewDocumentId);

            if (dbDesignReview != null && !dbDesignReview.AcceptedDate.HasValue && dbReviewDocument != null)
            {
                dbDesignReview.SelectedComment          = designReview.SelectedComment;
                dbDesignReview.AdditionalComment        = designReview.AdditionalComment;
                dbDesignReview.SelectedReviewDocumentId = designReview.SelectedReviewDocumentId;

                UOW.Commit();
                designReview = dbDesignReview;

                string description = "Skyberry Design Review Submission";

                StringBuilder body = new StringBuilder();

                body.Append("<table cellpadding='3' border='0'>");
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1} {2} ({3})</td></tr>", "User", user.FirstName, user.LastName, user.UserName);
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1} | {2} | {3}</td></tr>", "Design Review", dbDesignReview.Project.Account.Name, dbDesignReview.Project.Name, dbDesignReview.Title);
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}</td></tr>", "Selected Option", dbReviewDocument.Title);
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}</td></tr>", "Selected Comment", dbDesignReview.SelectedComment);
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}</td></tr>", "Additional Comment", dbDesignReview.AdditionalComment);
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}{2}</td></tr>", "Shortcut", HtmlUtil.GetDomain(Request.Url), @Url.Action("MyAccountDesignReview", "MyAccount", new { id = dbReviewDocument.DesignReviewId }));
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}</td></tr>", "Timestamp", DateTime.UtcNow.AddHours(-8).ToString("MM/dd/yyyy @ h:mm tt"));
                body.AppendFormat("<tr><td style='background-color:#d7d7d7;white-space:nowrap;text-align:right;vertical-align:top;'><strong>{0}</strong></td><td style='background-color:#e6e6e5;text-align:left;vertical-align:top;'>{1}</td></tr>", "Users IP", HtmlUtil.GetUserIP());
                body.Append("</table>");

                MailMessage message = new MailMessage();
                message.From = new MailAddress(from);
                message.To.Add(new MailAddress("*****@*****.**"));
                message.Subject         = description;
                message.IsBodyHtml      = true;
                message.Body            = body.ToString();
                message.BodyEncoding    = System.Text.Encoding.UTF8;
                message.SubjectEncoding = System.Text.Encoding.UTF8;


                SmtpClient SMTPServer = new SmtpClient(WebConfigurationManager.AppSettings["SMTP_HOST"]);
                SMTPServer.Port = Int16.Parse(WebConfigurationManager.AppSettings["SMTP_PORT"]);
                //SMTPServer.Credentials = new System.Net.NetworkCredential(WebConfigurationManager.AppSettings["SMTP_USERNAME"], WebConfigurationManager.AppSettings["SMTP_PASSWORD"]);

                try
                {
#if DEBUG
                    string debugAddress = WebConfigurationManager.AppSettings["DEBUG_EMAIL"];
                    if (!string.IsNullOrEmpty(debugAddress))
                    {
                        message.To.Clear();
                        message.CC.Clear();
                        message.Bcc.Clear();
                        message.To.Add(debugAddress);
                    }
#endif
                    SMTPServer.Send(message);
                    received = true;
                }
                catch (Exception ex)
                {
#if DEBUG
                    ModelState.AddModelError(string.Empty, "Exception: " + ex.Message);
#endif
                }
                message.Dispose();
            }

            Account    account = null;
            HttpCookie cookie  = Request.Cookies.Get("accountId");
            if (cookie != null)
            {
                try
                {
                    account = UOW.Accounts.GetById(Guid.Parse(cookie.Value));
                }
                catch { }
            }
            if (account == null && user.Accounts != null && user.Accounts.Count > 0)
            {
                foreach (var item in user.Accounts)
                {
                    account = UOW.Accounts.GetById(item.Id);
                    break;
                }
            }

            MyAccountDesignReviewVM vm = new MyAccountDesignReviewVM
            {
                User         = user,
                Account      = account,
                DesignReview = designReview,
                Received     = received
            };
            return(View(vm));
        }
 public ReviewDocumentVM()
 {
     ReviewDocument = new ReviewDocument();
     ReviewDocumentTypeOpts = ListOpts.ReviewDocumentTypeOpts;
 }