Наследование: System.Web.UI.Page
 protected RealExTransactionRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, Comments comments)
     : base(secret, merchantId, account, orderId, comments)
 {
     SignatureProperties = () => new[] { Amount.Value.ToString(), Amount.Currency.CurrencyName(), Card.Number };
     Amount = amount;
     Card = card;
 }
        Task<StacManResponse<Comment>> IPostMethods.GetComments(string site, IEnumerable<int> ids, string filter = null, int? page = null, int? pagesize = null, DateTime? fromdate = null, DateTime? todate = null, Comments.Sort? sort = null, DateTime? mindate = null, DateTime? maxdate = null, int? min = null, int? max = null, Order? order = null)
        {
            var filterObj = ValidateAndGetFilter(filter);

            ValidateString(site, "site");
            ValidateEnumerable(ids, "ids");
            ValidatePaging(page, pagesize);
            ValidateSortMinMax(sort, mindate: mindate, maxdate: maxdate, min: min, max: max);

            var ub = new ApiUrlBuilder(String.Format("/posts/{0}/comments", String.Join(";", ids)), useHttps: false);

            ub.AddParameter("site", site);
            ub.AddParameter("filter", filter);
            ub.AddParameter("page", page);
            ub.AddParameter("pagesize", pagesize);
            ub.AddParameter("fromdate", fromdate);
            ub.AddParameter("todate", todate);
            ub.AddParameter("sort", sort);
            ub.AddParameter("min", mindate);
            ub.AddParameter("max", maxdate);
            ub.AddParameter("min", min);
            ub.AddParameter("max", max);
            ub.AddParameter("order", order);

            return CreateApiTask<Comment>(ub, filterObj, "/posts/{ids}/comments");
        }
Пример #3
0
        public string AddComment(int postID, string commentTxt)
        {
            Comments comment = new Comments();
            comment.MemberId = Context.Session["memberID"].ToString();
            comment.CommentText = commentTxt;
            comment.PostId = postID;
            messageDAL.InsertComment(comment);

            //Insert notification
            NotificationDAL notificationDAL = new NotificationDAL();

            Post aPost = new Post(postID);

            List<Member> MemberList = new List<Member>();
            MemberList = notificationDAL.GetPostOwner(aPost);
            string friendId = MemberList[0].MemberId;
            Member aFriend = new Member(friendId);

            Member aMember = new Member(Context.Session["memberID"].ToString());

            if (aMember.MemberId != aFriend.MemberId)
            {
                notificationDAL.InsertCommentedOnPostNotification(aMember, aFriend, aPost);
            }
            //Refreshing the Comment count
            Post post = new Post();
            post.PostId = comment.PostId;

            return messageDAL.CountComments(post).ToString();
        }
 public RealEx3DVerifyRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, string paRes, Comments comments)
     : base(secret, merchantId, account, orderId, amount, card, comments)
 {
     PaRes = paRes;
     Type = "3ds-verifysig";
     IsSecure = true;
 }
Пример #5
0
        public void CommentForumsRead_CorrectInput_ReturnsValidList()
        {
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var site = mocks.DynamicMock<ISite>();
            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            var siteId = 1;

            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.SiteName).Return(siteName);
            site.Stub(x => x.SiteID).Return(siteId);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);
            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();
            reader.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumsreadbysitename")).Return(reader);
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            var forums = comments.GetCommentForumListBySite(site);

            Assert.AreEqual(1, forums.CommentForums.Count);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumsreadbysitename"));
        }
        Task<StacManResponse<Comment>> ICommentMethods.GetAll(string site, string filter = null, int? page = null, int? pagesize = null, DateTime? fromdate = null, DateTime? todate = null, Comments.Sort? sort = null, DateTime? mindate = null, DateTime? maxdate = null, int? min = null, int? max = null, Order? order = null)
        {
            var filterObj = ValidateAndGetFilter(filter);

            ValidateString(site, "site");
            ValidatePaging(page, pagesize);
            ValidateSortMinMax(sort, mindate: mindate, maxdate: maxdate, min: min, max: max);

            var ub = new ApiUrlBuilder("/comments", useHttps: false);

            ub.AddParameter("site", site);
            ub.AddParameter("filter", filter);
            ub.AddParameter("page", page);
            ub.AddParameter("pagesize", pagesize);
            ub.AddParameter("fromdate", fromdate);
            ub.AddParameter("todate", todate);
            ub.AddParameter("sort", sort);
            ub.AddParameter("min", mindate);
            ub.AddParameter("max", maxdate);
            ub.AddParameter("min", min);
            ub.AddParameter("max", max);
            ub.AddParameter("order", order);

            return CreateApiTask<Comment>(ub, filterObj, "/comments");
        }
Пример #7
0
 public string Create(Comments Model)
 {
     //Bll实例化放action里面 为了不让每次都实例化 产生废代码
     CommentsBll bll = new CommentsBll();
     //控制器里直接返回Bll里的返回结果 不写任何逻辑代码
     //保存的企业ID从登录信息里面取 所以必须要在这里赋值 因为登录信息是在BaseController里的
     Model.EnterpriseID = LoginUser.UserBasic.EnterpriseID;
     return bll.AddOrUpdate(Model);
 }
Пример #8
0
 public void GetComment()
 {
     string connectionString = ConfigurationManager.AppSettings.Get("connString");
     Comments commentObj = new Comments();
     commentObj.CommentId = int.Parse(Request.QueryString["CommentId"].ToString());
     BusinessLayer businessObj = new BusinessLayer ();
     DataSet dsComment = businessObj.getComments(commentObj, connectionString);
     txtComment.Text = dsComment.Tables[0].Rows[0][0].ToString();
 }
Пример #9
0
 public void GetComments()
 {
     string connectionString = ConfigurationManager.AppSettings.Get("connString");
     Comments commentObj = new Comments();
     commentObj.AdviceId = int.Parse(Session["AdviceId"].ToString());
     BusinessLayer businessLayerObj = new BusinessLayer();
     DataSet dsComment = businessLayerObj.SelectComment(commentObj, connectionString);
     gvShowComments.DataSource = dsComment;
     gvShowComments.DataBind();
 }
Пример #10
0
 public RealExAuthRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, TssInfo tssInfo, bool autoSettle, string custNum, string prodId, string varRef, Comments comments)
     : base(secret, merchantId, account, orderId, amount, card, comments)
 {
     TssInfo = tssInfo;
     CustNum = custNum;
     ProdId = prodId;
     VarRef = varRef;
     Type = "auth";
     AutoSettle = new AutoSettle(autoSettle);
 }
Пример #11
0
 protected void SaveComment()
 {
     string connectionString = ConfigurationManager.AppSettings.Get("connString");
     Comments comment = new Comments();
     comment.CommentDateTime = DateTime.Now;
     comment.Username = Session["Username"].ToString();
     comment.AdviceId = int.Parse(Session["AdviceId"].ToString());
     comment.CommentsField = txtComment.Text;
     BusinessLayer businessLayerObj = new BusinessLayer();
     businessLayerObj.InsertComment(comment, connectionString);
 }
Пример #12
0
 public ActionResult AddComment(FormCollection form)
 {
     int id = int.Parse(form["id"].ToString());
     string comment = form["comment"].ToString();
     using (var db = new RazomContext())
     {
         Comments c = new Comments { PlaceID = id, Message = comment };
         db.Comments.Add(c);
         db.SaveChanges();
     }
     return RedirectToAction("Show", new { id=id});
 }
Пример #13
0
 public void Add_Comment()
 {
     //Act
      Comments testComment = new Comments("TestComment", "Comment to add for testing", m_ParentTaskID);
      int initalCommentCount = m_ScrumToolDBContext.Comments.Count();
      //Arrange
      m_CommentController.Create(testComment);
      //Assert
      m_ScrumToolDBContext.Comments.Should().NotBeNullOrEmpty()
      		.And.HaveCount(initalCommentCount + 1, "Inital Comment Count + 1");
      m_ScrumToolDBContext.Comments.Last().ShouldBeEquivalentTo(testComment,
      		options => options.Excluding(c => c.ID), "The last comment object in the table should be the testComment");
 }
Пример #14
0
 protected void btnPost_Click(object sender, EventArgs e)
 {
     objComments = new Comments();
     objComments.CommentID = 0;
     objComments.BugID = intBugID;
     objComments.Name = Server.HtmlEncode(txtName.Text.Trim());
     objComments.Comment = Server.HtmlEncode(txtComments.Text.Trim());
     int i=objComments.postComments();
     if (i == 1)
     {
         fillComments();
     }
 }
Пример #15
0
 public void UpdateComment()
 {
     string connectionString = ConfigurationManager.AppSettings.Get("connString");
     Comments commentObj = new Comments();
     if (txtComment.Text.Equals(string.Empty) == false)
     {
         commentObj.CommentsField = txtComment.Text;
         commentObj.CommentId = int.Parse(Request.QueryString["CommentId"].ToString());
         BusinessLayer businessObj = new BusinessLayer();
         businessObj.UpdateComment(commentObj, connectionString);
         Response.Redirect("VoteAndCommentInfo.aspx");
     }
     else
         lblError.Text = "Blank Comment Cannot Be Submitted";
 }
Пример #16
0
 private void fillComments()
 {
     SqlDataReader dr = null;
     objComments = new Comments();
     objComments.BugID = intBugID;
     dr=(SqlDataReader)objComments.getallComments();
     if (dr.HasRows)
     {
         dlShowComments.DataSource = dr;
         dlShowComments.DataBind();
     }
     else
     {
         lblError.Text = "No Comments Found";
     }
 }
Пример #17
0
    protected void addcomment(object sender, ImageClickEventArgs e)
    {
        Security.UserInfo usr = new Security.UserInfo();
        string username = Session["USERNAME"].ToString();
        Security.UserInfo usrs = usr.getUserProfileFromEmail(username);

        Comments com = new Comments();
        string brandid = Request.QueryString["id"];
        com.BrandID =""+ brandid+"";
        com.Comment = txtdiscption.InnerText;
        com.UserID = usrs.UserID;
        com.Deleted = false;
        com.Date = System.DateTime.Now;
        com.PostAsAnonymous = false;
        com.BrandCommentID = 0;
        com.CreateComment(com);
    }
Пример #18
0
    public void info()
    {
        string t = Request.QueryString["id"];
           Brand brand = new Brand();
           int brandid = int.Parse(t);
           brand = brand.getBrandDetails(brandid.ToString());

           brandlogo.Src = "Images/" + brand.Logo;
           brandlogo.Width = 100;
           brandlogo.Height = 80;
           description.InnerText = brand.BrandDescription;
           name.Text = brand.BrandName;
           website.HRef = "http://" + brand.Website;
           website.InnerText = brand.Website;

           Comments comments = new Comments();
           List<Comments> topcomments = comments.TopThreeComments(5);

           Table tblComments = new Table();

           tblComments.Width = Unit.Percentage(100);
           tblComments.Height = Unit.Percentage(100);
           TableRow tblrowcom = new TableRow();
           TableCell tblcellcom = new TableCell();

           for (int j = 0; j < topcomments.Count; j++)
           {
               tblcellcom.Text = topcomments[j].Comment;
               tblrowcom.Cells.Add(tblcellcom);
               tblComments.Controls.Add(tblrowcom);
               tblcellcom = new TableCell();
               tblrowcom = new TableRow();

               tblcellcom.Text = topcomments[j].Date.ToString();
               tblrowcom.Cells.Add(tblcellcom);
               tblComments.Controls.Add(tblrowcom);
               tblcellcom = new TableCell();
               tblrowcom = new TableRow();

           }
           phbrand.Controls.Add(tblComments);
    }
Пример #19
0
        void associations_can_be_added_directly_to_gemini()
        {
            before = () =>
            {
                comments = new Comments();

                seed = new Seed();

                seed.PurgeDb();

                seed.CreateTable("Blogs", new dynamic[] 
                {
                    new { Id = "int", Identity = true, PrimaryKey = true },
                    new { Title = "nvarchar(255)" },
                    new { Body = "nvarchar(max)" }
                }).ExecuteNonQuery();

                seed.CreateTable("Comments", new dynamic[] 
                {
                    new { Id = "int", Identity = true, PrimaryKey = true },
                    new { BlogId = "int", ForeignKey = "Blogs(Id)" },
                    new { Text = "nvarchar(1000)" }
                }).ExecuteNonQuery();

                blogId = new { Title = "Some Blog", Body = "Lorem Ipsum" }.InsertInto("Blogs");

                commentId = new { BlogId = blogId, Text = "Comment 1" }.InsertInto("Comments");
            };

            it["change tracking methods exist when changes is mixed in"] = () =>
            {
                act = () => comment = comments.Single(commentId);

                it["returns blog associated with comment"] = () =>
                {
                    (comment.Blog().Id as object).should_be(blogId as object);
                };
            };
        }
Пример #20
0
 internal Values(List <IValue> values, Comments comments)
     : this(values) {
     this.Comments = comments;
 }
Пример #21
0
        public void CreateAndUpdateCommentForum_AlreadyExists_ThenUpdate()
        {
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();
            var readerUpdate = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            var uid = "uid";
            var commentForum = new CommentForum
            {
                Id = uid,
                Title = "title",
                ParentUri = "https://www.bbc.co.uk"

            };

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Twice();
            reader.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName);
            reader.Stub(x => x.GetStringNullAsEmpty("UID")).Return(uid);
            reader.Stub(x => x.GetStringNullAsEmpty("Title")).Return(uid);
            reader.Stub(x => x.GetStringNullAsEmpty("Url")).Return("https://www.bbc.co.uk");
            

            readerUpdate.Stub(x => x.HasRows).Return(true);
            readerUpdate.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerUpdate.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName);


            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Twice();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);

            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumreadbyuid")).Return(reader);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbyforumid")).Return(readerComments);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumupdate")).Return(readerUpdate);
            

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            var forum = comments.CreateAndUpdateCommentForum(commentForum, site, null);

            Assert.IsNotNull(forum);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumreadbyuid"));
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumupdate"));
            readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("commentforumcreate"));
        }
Пример #22
0
 public CommentsTests()
 {
     RequestHelper = new RequestHelper();
     Comments      = RequestHelper.GetResponse <Comments>(TestDataUrls.Comments);
 }
Пример #23
0
        public string FullText(
            Context context,
            SiteSettings ss,
            bool backgroundTask = false,
            bool onCreating     = false)
        {
            if (Parameters.Search.Provider != "FullText")
            {
                return(null);
            }
            if (!Parameters.Search.CreateIndexes && !backgroundTask)
            {
                return(null);
            }
            if (AccessStatus == Databases.AccessStatuses.NotFound)
            {
                return(null);
            }
            var fullText = new List <string>();

            SiteInfo.TenantCaches
            .Get(context.TenantId)?
            .SiteMenu.Breadcrumb(context: context, siteId: SiteId)
            .FullText(context, fullText);
            SiteId.FullText(context, fullText);
            ss.EditorColumns.ForEach(columnName =>
            {
                switch (columnName)
                {
                case "WikiId":
                    WikiId.FullText(context, fullText);
                    break;

                case "Title":
                    Title.FullText(context, fullText);
                    break;

                case "Body":
                    Body.FullText(context, fullText);
                    break;

                case "Comments":
                    Comments.FullText(context, fullText);
                    break;
                }
            });
            Creator.FullText(context, fullText);
            Updator.FullText(context, fullText);
            CreatedTime.FullText(context, fullText);
            UpdatedTime.FullText(context, fullText);
            if (!onCreating)
            {
                FullTextExtensions.OutgoingMailsFullText(
                    context: context,
                    fullText: fullText,
                    referenceType: "Wikis",
                    referenceId: WikiId);
            }
            return(fullText
                   .Where(o => !o.IsNullOrEmpty())
                   .Select(o => o.Trim())
                   .Distinct()
                   .Join(" "));
        }
 internal UnqualifiedColumnNames(List <UnqualifiedColumnName> columnNames, Comments comments)
     : this(columnNames) {
     this.Comments = comments;
 }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    DateTime            tryInstallDate;
                    Nullable <DateTime> installDate = null;
                    DateTime            tryDueDate;
                    Nullable <DateTime> dueDate = null;
                    Int32         formId;
                    int           statusId;
                    int           expediteCodeId;
                    string        emailListString = lblEmailsSentTo.Text.Replace(" ", "");
                    List <string> emailList       = emailListString.Split(',').ToList <string>();

                    System.Security.Principal.IPrincipal user = System.Web.HttpContext.Current.User;
                    UserLogic   uLogic      = new UserLogic();
                    SystemUsers currentUser = uLogic.GetCurrentUser(user);

                    DateTime.TryParse(txtInstallDate.Value, out tryInstallDate);
                    if (txtDueByDate.Value != "")
                    {
                        DateTime.TryParse(txtDueByDate.Value, out tryDueDate);

                        if (tryDueDate.Year > 0001)
                        {
                            dueDate = tryDueDate;
                        }
                    }
                    else
                    {
                        dueDate = null;
                    }


                    if (tryInstallDate.Year > 0001)
                    {
                        installDate = tryInstallDate;
                    }

                    expediteCodeId = Convert.ToInt32(ddlExpediteCode.SelectedValue);
                    statusId       = Convert.ToInt32(ddlStatus.SelectedValue);

                    string accountNumber       = txtAccountNumber.Text;
                    int    accountNumberLength = txtAccountNumber.Text.Length;

                    while (accountNumberLength < 6)
                    {
                        accountNumber = "0" + accountNumber;
                        accountNumberLength++;
                    }

                    using (FormContext ctx = new FormContext())
                    {
                        var   expediteCode    = ctx.ExpediteCodes.FirstOrDefault(c => c.ExpediteCodeID.Equals(expediteCodeId));
                        var   status          = ctx.Statuses.FirstOrDefault(s => s.StatusId.Equals(statusId));
                        Int32 requestedUserId = Convert.ToInt32(ddlRequestedBy.SelectedValue);
                        var   requestedUser   = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == requestedUserId);
                        var   modifiedUser    = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == currentUser.SystemUserID);

                        Models.DirectOrderForm newForm = new Models.DirectOrderForm
                        {
                            Timestamp           = DateTime.Now,
                            Company             = ddlCompany.SelectedText,
                            Customer            = txtCustomer.Text,
                            AccountNumber       = accountNumber,
                            ExpediteCode        = expediteCode,
                            OowOrderNumber      = txtOowOrderNumber.Text,
                            PurchaseOrderNumber = txtPurchaseOrderNumber.Text,
                            InstallDate         = installDate,
                            SM                    = txtSM.Text,
                            ContactName           = txtContactName.Text,
                            PhoneNumber           = txtPhoneNumber.Text,
                            Reserve               = txtReserve.Text,
                            ShipVia               = txtShipVia.Text,
                            ShipToName            = txtShipToName.Text,
                            ShipToAddress         = txtShipToAddress.Text,
                            ShipToCity            = txtShipToCity.Text,
                            ShipToState           = txtShipToState.Text,
                            ShipToZip             = txtShipToZip.Text,
                            ShipToPhone           = txtShipToPhone.Text,
                            Status                = ctx.Statuses.FirstOrDefault(s => s.StatusText == ddlStatus.SelectedItem.Text),
                            RequestedUser         = requestedUser,
                            LastModifiedUser      = modifiedUser,
                            SubmittedUser         = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == currentUser.SystemUserID),
                            DueDate               = dueDate,
                            Priority              = ctx.Priorities.FirstOrDefault(x => x.PriorityText == ddlPriority.SelectedText),
                            LastModifiedTimestamp = DateTime.Now
                        };

                        if (ddlAssignedTo.SelectedIndex != -1)
                        {
                            Int32 assignedUserId = Convert.ToInt32(ddlAssignedTo.SelectedValue);
                            newForm.AssignedUser = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == assignedUserId);
                        }

                        ctx.DirectOrderForms.Add(newForm);
                        ctx.SaveChanges();

                        if (newForm.AssignedUser != null)
                        {
                            Int32 assignedUserId = Convert.ToInt32(ddlAssignedTo.SelectedValue);

                            UserAssignmentAssociation uA = new UserAssignmentAssociation
                            {
                                Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                                RelatedFormId = newForm.RecordId,
                                User          = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == assignedUserId)
                            };

                            ctx.UserAssignments.Add(uA);
                        }

                        if (newForm.RequestedUser != null)
                        {
                            UserRequestAssociation uR = new UserRequestAssociation
                            {
                                Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                                RelatedFormId = newForm.RecordId,
                                User          = requestedUser
                            };

                            ctx.UserRequests.Add(uR);
                        }

                        ctx.SaveChanges();

                        formId = newForm.RecordId;

                        Comments systemComment = new Comments
                        {
                            Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                            Note          = "Request Created By: " + currentUser.DisplayName,
                            RelatedFormId = formId,
                            SystemComment = true,
                            Timestamp     = DateTime.Now
                        };

                        ctx.Comments.Add(systemComment);

                        Comments systemComment2 = new Comments
                        {
                            Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                            Note          = "Requested By: " + requestedUser.DisplayName,
                            RelatedFormId = formId,
                            SystemComment = true,
                            Timestamp     = DateTime.Now
                        };

                        ctx.Comments.Add(systemComment2);

                        if (ddlAssignedTo.SelectedIndex != -1)
                        {
                            Comments systemComment3 = new Comments
                            {
                                Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                                Note          = "Request Assigned To: " + requestedUser.DisplayName,
                                RelatedFormId = formId,
                                SystemComment = true,
                                Timestamp     = DateTime.Now
                            };

                            ctx.Comments.Add(systemComment3);
                        }


                        if (txtComments.Text != "")
                        {
                            Comments firstComment = new Comments
                            {
                                Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                                Note          = txtComments.Text,
                                RelatedFormId = formId,
                                SystemComment = false,
                                Timestamp     = DateTime.Now,
                                User          = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == currentUser.SystemUserID)
                            };

                            ctx.Comments.Add(firstComment);
                            ctx.SaveChanges();
                        }

                        if (ctx.SkuQuantityItems.Any(x => x.TempId == lblRandomIdentifier.Text))
                        {
                            var skus = ctx.SkuQuantityItems.Where(x => x.TempId == lblRandomIdentifier.Text);

                            foreach (var sku in skus)
                            {
                                sku.DirectOrderForm = ctx.DirectOrderForms.FirstOrDefault(x => x.RecordId == formId);
                            }

                            ctx.SaveChanges();
                        }

                        if (lblEmailsSentTo.Text != "")
                        {
                            Comments notifyComment = new Comments
                            {
                                Form          = ctx.TForms.FirstOrDefault(x => x.FormName == "Direct Order"),
                                Note          = "Request Notifications Sent To: " + lblEmailsSentTo.Text,
                                RelatedFormId = formId,
                                SystemComment = true,
                                Timestamp     = DateTime.Now
                            };

                            ctx.Comments.Add(notifyComment);

                            ctx.SaveChanges();

                            TForm submittedForm = ctx.TForms.FirstOrDefault(tf => tf.FormName == "Direct Order");

                            SendEmail     msg      = new SendEmail();
                            StringBuilder bodyHtml = new StringBuilder();

                            bodyHtml.AppendLine("<div style=\"width:50%; text-align:center;\"><img src=\"http://www.wctingle.com/img/Logo.jpg\" /><br /><br />")
                            .Append("A new Direct Order Request has been submitted.<br /><br />")
                            .AppendLine("<table style=\"border: 4px solid #d0604c;background-color:#FFF;width:100%;margin-lefT:auto; margin-right:auto;\">")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td colspan=\"4\" style=\"text-align: center;vertical-align: middle;font-weight: bold;font-size: 20px;border: 4px solid #d0604c; color:#FFF; background-color:#bc4445;\">Direct Order Request</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Company:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(ddlCompany.SelectedText).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%; color:#bc4445\"></td>")
                            .AppendLine("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000\"></td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Customer:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtCustomer.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Expedite Code:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(expediteCode.Code).Append(" - ").Append(expediteCode.Description).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Contact Name:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtContactName.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Phone Number:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtPhoneNumber.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr><td colspan=\"4\"><br /></td></tr>");

                            if (ctx.SkuQuantityItems.Any(x => x.DirectOrderForm.RecordId == formId))
                            {
                                bodyHtml.AppendLine("<tr><td colspan=\"4\"><table>");

                                var skus = ctx.SkuQuantityItems.Where(x => x.DirectOrderForm.RecordId == formId);

                                foreach (var sku in skus)
                                {
                                    bodyHtml.AppendLine("<tr>")
                                    .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:20%;color:#bc4445;\">Material SKU#:</td>")
                                    .Append("           <td style=\"text-align:left;font-size:16px;font-weight:bold;width:20%;color:#000;\">").Append(sku.MaterialSku).AppendLine("</td>")
                                    .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:20%;color:#bc4445;\">Quantity Ordered:</td>")
                                    .Append("           <td style=\"text-align:left;font-size:16px;font-weight:bold;width:20%;color:#000;\">").Append(sku.Quantity).AppendLine("</td>")
                                    .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:20%;color:#bc4445;\">Completed:</td>")
                                    .Append("           <td style=\"text-align:left;font-size:16px;font-weight:bold;width:20%;color:#000;\">").Append(sku.Completed.ToString()).AppendLine("</td>")
                                    .AppendLine("    </tr>");
                                }

                                bodyHtml.AppendLine("    </table></td></tr>");
                            }

                            bodyHtml.AppendLine("    <tr><td colspan=\"4\"><br /></td></tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Account Number:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtAccountNumber.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Purchase Order #:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtPurchaseOrderNumber.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">OOW Order Number:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtOowOrderNumber.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">S/M:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtSM.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Ship Via:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipVia.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\"Reserve:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtReserve.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Install Date:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtInstallDate.Value).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\"></td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\"></td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:left;font-size:16px;font-weight:bold;border: 4px solid #d0604c;color:#FFF; background-color:#bc4445;\" colspan=\"4\">Ship To</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Name:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToName.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Street Address:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToAddress.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">City: </td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToCity.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">State:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToState.Text).AppendLine("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Zip:</td>")
                            .Append("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToZip.Text).AppendLine("</td>")
                            .AppendLine("        <td style=\"text-align:right;font-size:16px;font-weight:bold;width:25%;color:#bc4445;\">Phone:</td>")
                            .AppendLine("        <td style=\"text-align:left;font-size:16px;font-weight:bold;width:25%;color:#000;\">").Append(txtShipToPhone.Text).Append("</td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("       <td style=\"width:100%;\" colspan=\"4\">")
                            .AppendLine("        <table style=\"border:none; width:100%\">")
                            .AppendLine("            <tr>")
                            .AppendLine("                <td colspan=\"4\">")
                            .AppendLine("                    <span style=\"font-weight:bold; color:#bc4445; text-decoration:underline\">Assignment and Request Details:</span>")
                            .AppendLine("                </td>")
                            .AppendLine("            </tr>")
                            .AppendLine("            <tr>")
                            .AppendLine("                <td style=\"width:20%; text-align:right\"><span class=\"formRedText\">Requested By:</span></td>")
                            .Append("                    <td style=\"width:25%; text-align:left\">").AppendLine(ddlRequestedBy.SelectedItem.Text)
                            .AppendLine("                </td>")
                            .AppendLine("                <td style=\"width:20%; text-align:right\"><span class=\"formRedText\">Assigned To:</span></td>")
                            .Append("                   <td style=\"width:25%; text-align:left\">");

                            if (ddlAssignedTo.SelectedIndex != -1)
                            {
                                bodyHtml.AppendLine(ddlAssignedTo.SelectedItem.Text);
                            }
                            else
                            {
                                bodyHtml.AppendLine("N/A");
                            }

                            bodyHtml.AppendLine("            </td>")
                            .AppendLine("            </tr>")
                            .AppendLine("            <tr>")
                            .AppendLine("                <td style=\"width:18%; text-align:right\"><span class=\"formRedText\">Date Created:</span></td>")
                            .AppendLine("                <td style=\"width:18%; text-align:left\">")
                            .AppendLine(DateTime.Now.ToShortDateString())
                            .AppendLine("                </td>")
                            .AppendLine("                <td style=\"width:18%; text-align:right\"><span class=\"formRedText\">Due By:</span></td>")
                            .Append("                    <td style=\"width:18%; text-align:left\">").Append(txtDueByDate.Value).AppendLine("</td>")
                            .AppendLine("            </tr>")
                            .AppendLine("            <tr>")
                            .AppendLine("                <td style=\"width:10%; text-align:right\"><span class=\"formRedText\">Status:</span></td>")
                            .Append("                    <td style=\"width:10%; text-align:left\">").AppendLine(ddlStatus.SelectedText)
                            .AppendLine("                </td>")
                            .AppendLine("                <td style=\"width:10%; text-align:right\"><span class=\"formRedText\">Priority:</span></td>")
                            .Append("                    <td style=\"width:10%; text-align:left\">").AppendLine(ddlPriority.SelectedText)
                            .AppendLine("                </td>")
                            .AppendLine("            </tr>")
                            .AppendLine("        </table>")
                            .AppendLine("       </td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .Append("       <td style=\"width:100%; text-align:center\" colspan=\"4\">Created By: ").AppendLine(currentUser.DisplayName)
                            .AppendLine("       </td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .Append("           <td style=\"width:100%; text-align:center\" colspan=\"4\"><span style=\"color:#bc4445; font-weight:bold\">Request Notifications Sent To:</span> <br />")
                            .AppendLine(lblEmailsSentTo.Text)
                            .AppendLine("       </td>")
                            .AppendLine("    </tr>")
                            .AppendLine("    <tr>")
                            .AppendLine("           <td style=\"width:100%; text-align:center\" colspan=\"4\"><br /><br /></td>")
                            .AppendLine("    </tr>")
                            .AppendLine("</table><br /><br />");

                            if (cbSendComments.Checked)
                            {
                                bodyHtml.AppendLine("<div style=\"width:80%; color:#bc4445; margin: 0 auto; text-align:center;\">Comments<br /></div>")
                                .AppendLine("<div style=\"width:80%; background-color:#bc4445; margin: 0 auto; text-align: left; padding:3px; color: white; \">")
                                .Append(txtComments.Text).AppendLine("<br /><br />")
                                .AppendLine("<span style=\"padding-right:15px\">").AppendLine(currentUser.DisplayName).AppendLine("</span>")
                                .AppendLine(DateTime.Now.ToString("MMMM dd, yyyy"))
                                .AppendLine("</div>");
                            }

                            bodyHtml.AppendLine("</div><br /><br />");


                            bool result = msg.SendMail("*****@*****.**", emailList, "Direct Order Request", bodyHtml.ToString(), submittedForm, formId, currentUser);


                            txtAccountNumber.Enabled       = false;
                            txtContactName.Enabled         = false;
                            txtCustomer.Enabled            = false;
                            txtInstallDate.Disabled        = true;
                            txtMaterialSku.Enabled         = false;
                            txtOowOrderNumber.Enabled      = false;
                            txtPhoneNumber.Enabled         = false;
                            txtPurchaseOrderNumber.Enabled = false;
                            txtQuantityOrdered.Enabled     = false;
                            txtShipToAddress.Enabled       = false;
                            txtShipToCity.Enabled          = false;
                            txtShipToName.Enabled          = false;
                            txtShipToState.Enabled         = false;
                            txtShipToZip.Enabled           = false;
                            txtShipToPhone.Enabled         = false;
                            txtSM.Enabled             = false;
                            txtReserve.Enabled        = false;
                            txtShipVia.Enabled        = false;
                            ddlExpediteCode.Enabled   = false;
                            ddlCompany.Enabled        = false;
                            ddlRequestedBy.Enabled    = false;
                            ddlAssignedTo.Enabled     = false;
                            txtDueByDate.Disabled     = true;
                            ddlStatus.Enabled         = false;
                            ddlPriority.Enabled       = false;
                            cbNotifyStandard.Enabled  = false;
                            cbNotifyRequester.Enabled = false;
                            cbNotifyOther.Enabled     = false;
                            cbNotifyAssignee.Enabled  = false;
                            cbSendComments.Enabled    = false;
                            txtComments.Enabled       = false;
                            btnAddSkuQuantity.Enabled = false;

                            string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                            Response.Redirect(pageUrl + "?FormAction=add&sendEmail=" + result.ToString());
                        }
                        else
                        {
                            string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                            Response.Redirect(pageUrl + "?FormAction=add&sendEmail=NotRequired");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                pnlCompleted.Visible = true;
                pnlForm.Visible      = false;
                lblMessage.Text      = "An error occured during submission of this request.  <br /><br />It is possible that the form was completed before this error occurred, <br />so please contact your System Administrator before re-submitting.";
            }
        }
Пример #26
0
    public static void WriteFile(Unity_Studio.EndianStream stream, string file, int offset, int size, Ogg ogg)
    {
        // Write to disk
        using (BinaryWriter writer = new BinaryWriter(File.Open(file, FileMode.Create)))
        {
            // Only support header CRC 3605052372 for now
            OggVorbisHeader head = new OggVorbisHeader();

            HeaderPacketBuilder hpb    = new HeaderPacketBuilder();
            CodecSetup          cSetup = new CodecSetup(null);
            cSetup.BlockSizes[0] = 256;
            cSetup.BlockSizes[1] = 2048;

            VorbisInfo info = new VorbisInfo(cSetup, (int)ogg.channels, (int)ogg.frequency, 0);

            OggPacket headerInfo = hpb.BuildInfoPacket(info);

            Comments comments = new Comments();
            if (ogg.loopStart > 0 && ogg.loopEnd > 0)
            {
                comments.AddTag("LOOP_START", ogg.loopStart.ToString());
                comments.AddTag("LOOP_END", ogg.loopEnd.ToString());
            }
            OggPacket headerComment = hpb.BuildCommentsPacket(comments);
            OggPacket headerSetup   = new OggPacket(OggVorbisHeader.GetHeader(ogg.crc32), false, 0, 2);

            OggStream output = new OggStream(1);
            output.PacketIn(headerInfo);
            output.PacketIn(headerComment);
            output.PacketIn(headerSetup);

            stream.Position = offset;

            UInt16 packetSize   = stream.ReadUInt16();
            int    prevPacketNo = 2;
            int    GranulePos   = 0;
            int    prevSamples  = 0;

            while (packetSize > 0)
            {
                OggPacket packet = new OggPacket(stream.ReadBytes(packetSize), false, 0, prevPacketNo + 1);

                byte firstByte = packet.PacketData[0];

                // OK for stereo
                int noSamples = 256;
                if ((firstByte & 2) != 0)
                {
                    noSamples = 2048;
                }

                if (prevSamples != 0)
                {
                    GranulePos += (prevSamples + noSamples) / 4;
                }
                packet.GranulePosition = GranulePos;
                prevSamples            = noSamples;

                if (stream.Position + 2 < offset + size)
                {
                    packetSize = stream.ReadUInt16();
                }
                else
                {
                    packetSize = 0;
                }
                packet.EndOfStream = packetSize == 0;
                prevPacketNo       = packet.PacketNumber;

                output.PacketIn(packet);
                OggPage page = null;
                if (output.PageOut(out page, true))
                {
                    writer.Write(page.Header);
                    writer.Write(page.Body);
                }
            }

            //float vorbis_quality = ((ogg.quality - 1) + (ogg.quality - 100) * 0.1f) / 99.0f;
            //VorbisInfo.InitVariableBitRate(ogg.channels, ogg.frequency, ogg.)
            //writer.Write();
            writer.Close();
        }
    }
Пример #27
0
        public void CommentsReadBySite_WithPrefixFromDbCorrectInput_ReturnsValidList()
        {

            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbysitenameprefix")).Return(readerComments);

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            var commentList = comments.GetCommentsListBySite(site, "prefix");

            Assert.IsNotNull(commentList);
            Assert.AreEqual(1, commentList.TotalCount);
            Assert.AreEqual(1, commentList.comments.Count);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentsreadbysitenameprefix"));
        }
Пример #28
0
 public FileSyntax(@string Name = default, Comments Comments = default, slice <Expr> Stmt = default)
 {
     this.Name          = Name;
     this.m_CommentsRef = new ptr <Comments>(Comments);
     this.Stmt          = Stmt;
 }
Пример #29
0
        public override bool Load(bool preload)
        {
            var file = new FileInfo(Filename);

            if (!file.Exists)
            {
                return(false);
            }

            using (var bl = BinaryStateLoader.LoadAndDetect(Filename, true))
            {
                if (bl == null)
                {
                    return(false);
                }

                ClearBeforeLoad();
                ClearTasprojExtras();

                bl.GetLump(BinaryStateLump.Movieheader, true, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            var pair = line.Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);

                            if (pair.Length > 1)
                            {
                                Header.Add(pair[0], pair[1]);
                            }
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Comments, true, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            Comments.Add(line);
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Subtitles, true, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            Subtitles.AddFromString(line);
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.SyncSettings, true, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            SyncSettingsJson = line;
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Input, true, delegate(TextReader tr)                 // Note: ExtractInputLog will clear Lag and State data potentially, this must come before loading those
                {
                    var errorMessage    = string.Empty;
                    IsCountingRerecords = false;
                    ExtractInputLog(tr, out errorMessage);
                    IsCountingRerecords = true;
                });

                if (StartsFromSavestate)
                {
                    bl.GetCoreState(
                        delegate(BinaryReader br, long length)
                    {
                        BinarySavestate = br.ReadBytes((int)length);
                    },
                        delegate(TextReader tr)
                    {
                        TextSavestate = tr.ReadToEnd();
                    });
                }
                else if (StartsFromSaveRam)
                {
                    bl.GetLump(BinaryStateLump.MovieSaveRam, false,
                               delegate(BinaryReader br, long length)
                    {
                        SaveRam = br.ReadBytes((int)length);
                    });
                }

                // TasMovie enhanced information
                if (bl.HasLump(BinaryStateLump.LagLog))
                {
                    bl.GetLump(BinaryStateLump.LagLog, false, delegate(BinaryReader br, long length)
                    {
                        LagLog.Load(br);
                    });
                }

                bl.GetLump(BinaryStateLump.StateHistorySettings, false, delegate(TextReader tr)
                {
                    StateManager.Settings.PopulateFromString(tr.ReadToEnd());
                });

                if (!preload)
                {
                    if (StateManager.Settings.SaveStateHistory)
                    {
                        bl.GetLump(BinaryStateLump.StateHistory, false, delegate(BinaryReader br, long length)
                        {
                            StateManager.Load(br);
                        });
                    }

                    // Movie should always have a state at frame 0.
                    if (!this.StartsFromSavestate)
                    {
                        StateManager.Capture();
                    }
                }

                bl.GetLump(BinaryStateLump.Markers, false, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            Markers.Add(new TasMovieMarker(line));
                        }
                    }
                });

                if (GetClientSettingsOnLoad != null && bl.HasLump(BinaryStateLump.ClientSettings))
                {
                    string clientSettings = string.Empty;
                    bl.GetLump(BinaryStateLump.ClientSettings, true, delegate(TextReader tr)
                    {
                        string line;
                        while ((line = tr.ReadLine()) != null)
                        {
                            if (!string.IsNullOrWhiteSpace(line))
                            {
                                clientSettings = line;
                            }
                        }
                    });

                    GetClientSettingsOnLoad(clientSettings);
                }

                if (bl.HasLump(BinaryStateLump.VerificationLog))
                {
                    bl.GetLump(BinaryStateLump.VerificationLog, true, delegate(TextReader tr)
                    {
                        VerificationLog.Clear();
                        while (true)
                        {
                            var line = tr.ReadLine();
                            if (string.IsNullOrEmpty(line))
                            {
                                break;
                            }

                            if (line.StartsWith("|"))
                            {
                                VerificationLog.Add(line);
                            }
                        }
                    });
                }

                Branches.Load(bl, this);
                if (StateManager.Settings.BranchStatesInTasproj)
                {
                    bl.GetLump(BinaryStateLump.BranchStateHistory, false, delegate(BinaryReader br, long length)
                    {
                        StateManager.LoadBranchStates(br);
                    });
                }

                bl.GetLump(BinaryStateLump.Session, false, delegate(TextReader tr)
                {
                    Session.PopulateFromString(tr.ReadToEnd());
                });
            }

            Changes = false;
            return(true);
        }
Пример #30
0
        private void Set(Context context, SiteSettings ss, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "TenantId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            TenantId      = dataRow[column.ColumnName].ToInt();
                            SavedTenantId = TenantId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "TenantName":
                        TenantName      = dataRow[column.ColumnName].ToString();
                        SavedTenantName = TenantName;
                        break;

                    case "Title":
                        Title      = new Title(dataRow, "TenantId");
                        SavedTitle = Title.Value;
                        break;

                    case "Body":
                        Body      = dataRow[column.ColumnName].ToString();
                        SavedBody = Body;
                        break;

                    case "ContractSettings":
                        ContractSettings      = GetContractSettings(dataRow);
                        SavedContractSettings = ContractSettings?.RecordingJson();
                        break;

                    case "ContractDeadline":
                        ContractDeadline      = dataRow[column.ColumnName].ToDateTime();
                        SavedContractDeadline = ContractDeadline;
                        break;

                    case "DisableAllUsersPermission":
                        DisableAllUsersPermission      = dataRow[column.ColumnName].ToBool();
                        SavedDisableAllUsersPermission = DisableAllUsersPermission;
                        break;

                    case "LogoType":
                        LogoType      = (LogoTypes)dataRow[column.ColumnName].ToInt();
                        SavedLogoType = LogoType.ToInt();
                        break;

                    case "HtmlTitleTop":
                        HtmlTitleTop      = dataRow[column.ColumnName].ToString();
                        SavedHtmlTitleTop = HtmlTitleTop;
                        break;

                    case "HtmlTitleSite":
                        HtmlTitleSite      = dataRow[column.ColumnName].ToString();
                        SavedHtmlTitleSite = HtmlTitleSite;
                        break;

                    case "HtmlTitleRecord":
                        HtmlTitleRecord      = dataRow[column.ColumnName].ToString();
                        SavedHtmlTitleRecord = HtmlTitleRecord;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(context, dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(context, dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory":
                        VerType = dataRow.Bool(column.ColumnName)
                                ? Versions.VerTypes.History
                                : Versions.VerTypes.Latest; break;

                    default:
                        switch (Def.ExtendedColumnTypes.Get(column.Name))
                        {
                        case "Class":
                            Class(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedClass(
                                columnName: column.Name,
                                value: Class(columnName: column.Name));
                            break;

                        case "Num":
                            Num(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToDecimal());
                            SavedNum(
                                columnName: column.Name,
                                value: Num(columnName: column.Name));
                            break;

                        case "Date":
                            Date(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToDateTime());
                            SavedDate(
                                columnName: column.Name,
                                value: Date(columnName: column.Name));
                            break;

                        case "Description":
                            Description(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedDescription(
                                columnName: column.Name,
                                value: Description(columnName: column.Name));
                            break;

                        case "Check":
                            Check(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToBool());
                            SavedCheck(
                                columnName: column.Name,
                                value: Check(columnName: column.Name));
                            break;

                        case "Attachments":
                            Attachments(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString()
                                .Deserialize <Attachments>() ?? new Attachments());
                            SavedAttachments(
                                columnName: column.Name,
                                value: Attachments(columnName: column.Name).ToJson());
                            break;
                        }
                        break;
                    }
                }
            }
        }
Пример #31
0
        public void SetByApi(Context context, SiteSettings ss)
        {
            var data = context.RequestDataString.Deserialize <TenantApiModel>();

            if (data == null)
            {
                return;
            }
            if (data.TenantName != null)
            {
                TenantName = data.TenantName.ToString().ToString();
            }
            if (data.Title != null)
            {
                Title = new Title(data.Title.ToString());
            }
            if (data.Body != null)
            {
                Body = data.Body.ToString().ToString();
            }
            if (data.ContractDeadline != null)
            {
                ContractDeadline = data.ContractDeadline.ToDateTime().ToDateTime().ToUniversal(context: context);
            }
            if (data.DisableAllUsersPermission != null)
            {
                DisableAllUsersPermission = data.DisableAllUsersPermission.ToBool().ToBool();
            }
            if (data.LogoType != null)
            {
                LogoType = (LogoTypes)data.LogoType.ToInt().ToInt();
            }
            if (data.HtmlTitleTop != null)
            {
                HtmlTitleTop = data.HtmlTitleTop.ToString().ToString();
            }
            if (data.HtmlTitleSite != null)
            {
                HtmlTitleSite = data.HtmlTitleSite.ToString().ToString();
            }
            if (data.HtmlTitleRecord != null)
            {
                HtmlTitleRecord = data.HtmlTitleRecord.ToString().ToString();
            }
            if (data.Comments != null)
            {
                Comments.Prepend(context: context, ss: ss, body: data.Comments);
            }
            if (data.VerUp != null)
            {
                VerUp = data.VerUp.ToBool();
            }
            data.ClassHash.ForEach(o => Class(
                                       columnName: o.Key,
                                       value: o.Value));
            data.NumHash.ForEach(o => Num(
                                     columnName: o.Key,
                                     value: o.Value));
            data.DateHash.ForEach(o => Date(
                                      columnName: o.Key,
                                      value: o.Value.ToUniversal(context: context)));
            data.DescriptionHash.ForEach(o => Description(
                                             columnName: o.Key,
                                             value: o.Value));
            data.CheckHash.ForEach(o => Check(
                                       columnName: o.Key,
                                       value: o.Value));
            data.AttachmentsHash.ForEach(o => Attachments(
                                             columnName: o.Key,
                                             value: o.Value));
        }
Пример #32
0
 public void AddComment(Comment comment) => Comments.Add(comment);
Пример #33
0
        public void CommentForumReadByUid_FromDbNotSignedIn_ReturnsValidList()
        {

            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            var uid = "";
            var userId = 1;

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);
            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();
            reader.Stub(x => x.GetInt32NullAsZero("NotSignedInUserId")).Return(userId);
            reader.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);

            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumreadbyuid")).Return(reader);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbyforumid")).Return(readerComments);

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            var forum = comments.GetCommentForumByUid(uid, site);

            Assert.IsNotNull(forum);
            Assert.IsTrue(forum.allowNotSignedInCommenting);
            Assert.AreEqual(userId, forum.NotSignedInUserId);
            Assert.AreEqual(1, forum.commentList.TotalCount);
            Assert.AreEqual(1, forum.commentList.comments.Count);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumreadbyuid"));
        }
Пример #34
0
 public CommentManager(Comments comments)
 {
     this.comments = comments;
 }
Пример #35
0
        public void CommentForumReadByUid_CacheValid_ReturnsValidList()
        {
            var lastUpdate = DateTime.Now.AddDays(1);
            var uid = "testUid";
            var validForum = new CommentForum { Id = uid };
            var comments = new Comments(null, null, null, null);
            
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();
            var readerLastUpdate = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";

            string cacheKey = comments.CommentForumCacheKey(uid, 0);

            cacheManager.Stub(x => x.GetData(cacheKey + "|LASTUPDATED")).Return(lastUpdate);
            cacheManager.Stub(x => x.GetData(cacheKey)).Return(validForum);
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);
            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();
            reader.Stub(x => x.GetStringNullAsEmpty("sitename")).Return(siteName);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);

            readerLastUpdate.Stub(x => x.HasRows).Return(true);
            readerLastUpdate.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerLastUpdate.Stub(x => x.GetDateTime("lastupdated")).Return(lastUpdate);


            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumreadbyuid")).Return(reader);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbyforumid")).Return(readerComments);
            readerCreator.Stub(x => x.CreateDnaDataReader("CommentforumGetLastUpdate")).Return(readerLastUpdate);


            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            comments = new Comments(null, readerCreator, cacheManager, siteList);
            var forum = comments.GetCommentForumByUid(uid, site);

            Assert.IsNotNull(forum);
            Assert.AreEqual(uid, forum.Id);
            readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("commentforumreadbyuid"));
            readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("commentsreadbyforumid"));
        }
Пример #36
0
        public void CommentsReadBySite_ValidCache_ReturnsValidList()
        {
            var lastUpdate = DateTime.Now.AddDays(1);
            var comments = new Comments(null, null, null, null);
            var validCommentsList = new CommentsList {comments = new List<CommentInfo>()};
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();
            var readerLastUpdate = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            string cacheKey = comments.CommentListCacheKey(0, "");

            cacheManager.Stub(x => x.GetData(cacheKey)).Return(validCommentsList);
            cacheManager.Stub(x => x.GetData(cacheKey + "|LASTUPDATED")).Return(lastUpdate);
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbysitename")).Return(readerComments);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsgetlastupdatebysite")).Return(readerLastUpdate);

            readerLastUpdate.Stub(x => x.HasRows).Return(true);
            readerLastUpdate.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerLastUpdate.Stub(x => x.GetDateTime("lastupdated")).Return(lastUpdate);

            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            comments = new Comments(null, readerCreator, cacheManager, siteList);
            var commentList = comments.GetCommentsListBySite(site);

            Assert.IsNotNull(commentList);
            readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("commentsreadbysitename"));
        }
Пример #37
0
        private void Set(Context context, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "ReferenceType":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            ReferenceType      = dataRow[column.ColumnName].ToString();
                            SavedReferenceType = ReferenceType;
                        }
                        break;

                    case "ReferenceId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            ReferenceId      = dataRow[column.ColumnName].ToLong();
                            SavedReferenceId = ReferenceId;
                        }
                        break;

                    case "Title":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            Title      = new Title(dataRow, "ExportSettingId");
                            SavedTitle = Title.Value;
                        }
                        break;

                    case "ExportSettingId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            ExportSettingId      = dataRow[column.ColumnName].ToLong();
                            SavedExportSettingId = ExportSettingId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "AddHeader":
                        AddHeader      = dataRow[column.ColumnName].ToBool();
                        SavedAddHeader = AddHeader;
                        break;

                    case "ExportColumns":
                        ExportColumns      = dataRow[column.ColumnName].ToString().Deserialize <ExportColumns>() ?? new ExportColumns(ReferenceType);
                        SavedExportColumns = ExportColumns.ToJson();
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory": VerType = dataRow[column.ColumnName].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                    }
                }
            }
        }
Пример #38
0
        public void CommentCreate_AsPreMod_ReturnCorrectError()
        {            
            var siteName = "h2g2";
            var siteId = 1;
            var uid = "uid";
            var text = "test text";
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var callingUser = mocks.DynamicMock<ICallingUser>();
            var commentForum = new CommentForum { Id = uid, SiteName = siteName, ModerationServiceGroup = ModerationStatus.ForumStatus.PreMod };
            var commentInfo = new CommentInfo { text = text };

            callingUser.Stub(x => x.IsSecureRequest).Return(true);

            callingUser.Stub(x => x.UserID).Return(1);
            callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything());

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());

            site.Stub(x => x.SiteID).Return(siteId);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();

            readerCreator.Stub(x => x.CreateDnaDataReader("commentcreate")).Return(reader);

            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            comments.CallingUser = callingUser;
            var comment = comments.CreateComment(commentForum, commentInfo);

            Assert.IsNotNull(comment);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentcreate"));
        }
        private void Set(IContext context, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "LoginId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            LoginId      = dataRow[column.ColumnName].ToString();
                            SavedLoginId = LoginId;
                        }
                        break;

                    case "Key":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            Key      = dataRow[column.ColumnName].ToString();
                            SavedKey = Key;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "TenantNames":
                        TenantNames      = dataRow[column.ColumnName].ToString();
                        SavedTenantNames = TenantNames;
                        break;

                    case "TenantId":
                        TenantId      = dataRow[column.ColumnName].ToInt();
                        SavedTenantId = TenantId;
                        break;

                    case "UserId":
                        UserId      = dataRow[column.ColumnName].ToInt();
                        SavedUserId = UserId;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(context, dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(context, dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory": VerType = dataRow[column.ColumnName].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                    }
                }
            }
        }
Пример #40
0
 public RealExRebateRequest(string secret, string merchantId, string account, string orderId, Amount amount, string pasRef, string authCode, string refundPassword, bool autoSettle, Comments comments)
     : base(secret, merchantId, account, orderId, pasRef, authCode, comments)
 {
     SignatureProperties = () => new[] { Amount.Value.ToString(), Amount.Currency.CurrencyName() + "." };
     Type       = "rebate";
     AutoSettle = new AutoSettle(autoSettle);
     RefundHash = refundPassword.ComputeHash();
     Amount     = amount;
 }
Пример #41
0
 public CreateCommentCommand(Comments _comment)
 {
     Comment = _comment;
 }
Пример #42
0
        public void SetByApi(Context context, SiteSettings ss)
        {
            var data = context.RequestDataString.Deserialize <GroupApiModel>();

            if (data == null)
            {
                context.InvalidJsonData = !context.RequestDataString.IsNullOrEmpty();
                return;
            }
            if (data.TenantId != null)
            {
                TenantId = data.TenantId.ToInt().ToInt();
            }
            if (data.GroupName != null)
            {
                GroupName = data.GroupName.ToString().ToString();
            }
            if (data.Body != null)
            {
                Body = data.Body.ToString().ToString();
            }
            if (data.Disabled != null)
            {
                Disabled = data.Disabled.ToBool().ToBool();
            }
            if (data.Comments != null)
            {
                Comments.Prepend(context: context, ss: ss, body: data.Comments);
            }
            if (data.VerUp != null)
            {
                VerUp = data.VerUp.ToBool();
            }
            data.ClassHash?.ForEach(o => Class(
                                        columnName: o.Key,
                                        value: o.Value));
            data.NumHash?.ForEach(o => Num(
                                      columnName: o.Key,
                                      value: new Num(o.Value)));
            data.DateHash?.ForEach(o => Date(
                                       columnName: o.Key,
                                       value: o.Value.ToDateTime().ToUniversal(context: context)));
            data.DescriptionHash?.ForEach(o => Description(
                                              columnName: o.Key,
                                              value: o.Value));
            data.CheckHash?.ForEach(o => Check(
                                        columnName: o.Key,
                                        value: o.Value));
            data.AttachmentsHash?.ForEach(o =>
            {
                string columnName          = o.Key;
                Attachments newAttachments = o.Value;
                Attachments oldAttachments = AttachmentsHash.Get(columnName);
                if (oldAttachments != null)
                {
                    var newGuidSet = new HashSet <string>(newAttachments.Select(x => x.Guid).Distinct());
                    newAttachments.AddRange(oldAttachments.Where((oldvalue) => !newGuidSet.Contains(oldvalue.Guid)));
                }
                Attachments(columnName: columnName, value: newAttachments);
            });
        }
Пример #43
0
        public Dictionary <string, string> PropertyValues(Context context, IEnumerable <string> names)
        {
            var hash = new Dictionary <string, string>();

            names?.ForEach(name =>
            {
                switch (name)
                {
                case "SiteId":
                    hash.Add("SiteId", SiteId.ToString());
                    break;

                case "UpdatedTime":
                    hash.Add("UpdatedTime", UpdatedTime.Value.ToString());
                    break;

                case "WikiId":
                    hash.Add("WikiId", WikiId.ToString());
                    break;

                case "Ver":
                    hash.Add("Ver", Ver.ToString());
                    break;

                case "Title":
                    hash.Add("Title", Title.Value);
                    break;

                case "Body":
                    hash.Add("Body", Body);
                    break;

                case "TitleBody":
                    hash.Add("TitleBody", TitleBody.ToString());
                    break;

                case "Comments":
                    hash.Add("Comments", Comments.ToJson());
                    break;

                case "Creator":
                    hash.Add("Creator", Creator.Id.ToString());
                    break;

                case "Updator":
                    hash.Add("Updator", Updator.Id.ToString());
                    break;

                case "CreatedTime":
                    hash.Add("CreatedTime", CreatedTime.Value.ToString());
                    break;

                case "VerUp":
                    hash.Add("VerUp", VerUp.ToString());
                    break;

                case "Timestamp":
                    hash.Add("Timestamp", Timestamp);
                    break;
                }
            });
            return(hash);
        }
Пример #44
0
        private void Set(Context context, SiteSettings ss, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "TenantId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            TenantId      = dataRow[column.ColumnName].ToInt();
                            SavedTenantId = TenantId;
                        }
                        break;

                    case "GroupId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            GroupId      = dataRow[column.ColumnName].ToInt();
                            SavedGroupId = GroupId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "GroupName":
                        GroupName      = dataRow[column.ColumnName].ToString();
                        SavedGroupName = GroupName;
                        break;

                    case "Body":
                        Body      = dataRow[column.ColumnName].ToString();
                        SavedBody = Body;
                        break;

                    case "Disabled":
                        Disabled      = dataRow[column.ColumnName].ToBool();
                        SavedDisabled = Disabled;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(context, dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(context, dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory":
                        VerType = dataRow.Bool(column.ColumnName)
                                ? Versions.VerTypes.History
                                : Versions.VerTypes.Latest; break;

                    default:
                        switch (Def.ExtendedColumnTypes.Get(column.Name))
                        {
                        case "Class":
                            Class(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedClass(
                                columnName: column.Name,
                                value: Class(columnName: column.Name));
                            break;

                        case "Num":
                            Num(
                                columnName: column.Name,
                                value: new Num(
                                    dataRow: dataRow,
                                    name: column.ColumnName));
                            SavedNum(
                                columnName: column.Name,
                                value: Num(columnName: column.Name).Value);
                            break;

                        case "Date":
                            Date(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToDateTime());
                            SavedDate(
                                columnName: column.Name,
                                value: Date(columnName: column.Name));
                            break;

                        case "Description":
                            Description(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedDescription(
                                columnName: column.Name,
                                value: Description(columnName: column.Name));
                            break;

                        case "Check":
                            Check(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToBool());
                            SavedCheck(
                                columnName: column.Name,
                                value: Check(columnName: column.Name));
                            break;

                        case "Attachments":
                            Attachments(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString()
                                .Deserialize <Attachments>() ?? new Attachments());
                            SavedAttachments(
                                columnName: column.Name,
                                value: Attachments(columnName: column.Name).ToJson());
                            break;
                        }
                        break;
                    }
                }
            }
        }
Пример #45
0
        private void Set(Context context, SiteSettings ss, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "SiteId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            SiteId      = dataRow[column.ColumnName].ToLong();
                            SavedSiteId = SiteId;
                        }
                        break;

                    case "UpdatedTime":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            UpdatedTime      = new Time(context, dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                            SavedUpdatedTime = UpdatedTime.Value;
                        }
                        break;

                    case "WikiId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            WikiId      = dataRow[column.ColumnName].ToLong();
                            SavedWikiId = WikiId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "Title":
                        Title      = new Title(context: context, ss: ss, dataRow: dataRow, column: column);
                        SavedTitle = Title.Value;
                        break;

                    case "Body":
                        Body      = dataRow[column.ColumnName].ToString();
                        SavedBody = Body;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(context, dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "IsHistory": VerType = dataRow[column.ColumnName].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                    }
                }
            }
        }
 public Comments Add(Comments comment)
 {
     context.Comments.Add(comment);
     context.SaveChanges();
     return(comment);
 }
Пример #47
0
        private void Set(Context context, DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "ReferenceId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            ReferenceId      = dataRow[column.ColumnName].ToLong();
                            SavedReferenceId = ReferenceId;
                        }
                        break;

                    case "ReferenceType":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            ReferenceType      = dataRow[column.ColumnName].ToString();
                            SavedReferenceType = ReferenceType;
                        }
                        break;

                    case "OwnerId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            OwnerId      = dataRow[column.ColumnName].ToInt();
                            SavedOwnerId = OwnerId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "Data":
                        Data      = dataRow[column.ColumnName].ToString().Deserialize <List <long> >() ?? new List <long>();
                        SavedData = Data.ToJson();
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(context: context, userId: dataRow.Int(column.ColumnName));
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(context, dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(context, dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory":
                        VerType = dataRow.Bool(column.ColumnName)
                                ? Versions.VerTypes.History
                                : Versions.VerTypes.Latest; break;

                    default:
                        switch (Def.ExtendedColumnTypes.Get(column.Name))
                        {
                        case "Class":
                            Class(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedClass(
                                columnName: column.Name,
                                value: Class(columnName: column.Name));
                            break;

                        case "Num":
                            Num(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToDecimal());
                            SavedNum(
                                columnName: column.Name,
                                value: Num(columnName: column.Name));
                            break;

                        case "Date":
                            Date(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToDateTime());
                            SavedDate(
                                columnName: column.Name,
                                value: Date(columnName: column.Name));
                            break;

                        case "Description":
                            Description(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString());
                            SavedDescription(
                                columnName: column.Name,
                                value: Description(columnName: column.Name));
                            break;

                        case "Check":
                            Check(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToBool());
                            SavedCheck(
                                columnName: column.Name,
                                value: Check(columnName: column.Name));
                            break;

                        case "Attachments":
                            Attachments(
                                columnName: column.Name,
                                value: dataRow[column.ColumnName].ToString()
                                .Deserialize <Attachments>() ?? new Attachments());
                            SavedAttachments(
                                columnName: column.Name,
                                value: Attachments(columnName: column.Name).ToJson());
                            break;
                        }
                        break;
                    }
                }
            }
        }
Пример #48
0
        public virtual bool Load(bool preload)
        {
            var file = new FileInfo(Filename);

            if (!file.Exists)
            {
                return(false);
            }

            using (var bl = BinaryStateLoader.LoadAndDetect(Filename, true))
            {
                if (bl == null)
                {
                    return(false);
                }

                ClearBeforeLoad();

                bl.GetLump(BinaryStateLump.Movieheader, true, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            var pair = line.Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);

                            if (pair.Length > 1)
                            {
                                if (!Header.ContainsKey(pair[0]))
                                {
                                    Header.Add(pair[0], pair[1]);
                                }
                            }
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Comments, false, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            Comments.Add(line);
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Subtitles, false, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            Subtitles.AddFromString(line);
                        }
                    }

                    Subtitles.Sort();
                });

                bl.GetLump(BinaryStateLump.SyncSettings, false, delegate(TextReader tr)
                {
                    string line;
                    while ((line = tr.ReadLine()) != null)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            _syncSettingsJson = line;
                        }
                    }
                });

                bl.GetLump(BinaryStateLump.Input, true, delegate(TextReader tr)
                {
                    string errorMessage;
                    IsCountingRerecords = false;
                    ExtractInputLog(tr, out errorMessage);
                    IsCountingRerecords = true;
                });

                if (StartsFromSavestate)
                {
                    bl.GetCoreState(
                        delegate(BinaryReader br, long length)
                    {
                        BinarySavestate = br.ReadBytes((int)length);
                    },
                        delegate(TextReader tr)
                    {
                        TextSavestate = tr.ReadToEnd();
                    });
                    bl.GetLump(BinaryStateLump.Framebuffer, false,
                               delegate(BinaryReader br, long length)
                    {
                        SavestateFramebuffer = new int[length / sizeof(int)];
                        for (int i = 0; i < SavestateFramebuffer.Length; i++)
                        {
                            SavestateFramebuffer[i] = br.ReadInt32();
                        }
                    });
                }
                else if (StartsFromSaveRam)
                {
                    bl.GetLump(BinaryStateLump.MovieSaveRam, false,
                               delegate(BinaryReader br, long length)
                    {
                        SaveRam = br.ReadBytes((int)length);
                    });
                }
            }

            Changes = false;
            return(true);
        }
Пример #49
0
        public void CreateAndUpdateCommentForum_NoExists_CreatesForum()
        {
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var readerCreate = mocks.DynamicMock<IDnaDataReader>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            reader.Stub(x => x.HasRows).Return(false);
            reader.Stub(x => x.Read()).Return(false);
            readerComments.Stub(x => x.HasRows).Return(false);
            readerComments.Stub(x => x.Read()).Return(false);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumreadbyuid")).Return(reader);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbyforumid")).Return(readerComments);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentforumcreate")).Return(readerCreate);

            siteList.Stub(x => x.GetSite(siteName)).Return(site);

            var commentForum = new Forum
            {
                Id = "".PadRight(10, 'a'),
                ParentUri = "http://www.bbc.co.uk/dna",
                Title = "title",
                ModerationServiceGroup = ModerationStatus.ForumStatus.PostMod
            };


            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            var forum = comments.CreateAndUpdateCommentForum(commentForum, site, null);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumreadbyuid"));
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentforumcreate"));
        }
Пример #50
0
        private void Set(DataRow dataRow)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var name = dataColumn.ColumnName;
                switch (name)
                {
                case "ReferenceId": if (dataRow[name] != DBNull.Value)
                    {
                        ReferenceId = dataRow[name].ToLong(); SavedReferenceId = ReferenceId;
                    }
                    break;

                case "Ver": Ver = dataRow[name].ToInt(); SavedVer = Ver; break;

                case "ReferenceType": ReferenceType = dataRow[name].ToString(); SavedReferenceType = ReferenceType; break;

                case "SiteId": SiteId = dataRow[name].ToLong(); SavedSiteId = SiteId; break;

                case "Title": Title = dataRow[name].ToString(); SavedTitle = Title; break;

                case "FullText": FullText = dataRow[name].ToString(); SavedFullText = FullText; break;

                case "SearchIndexCreatedTime": SearchIndexCreatedTime = dataRow[name].ToDateTime(); SavedSearchIndexCreatedTime = SearchIndexCreatedTime; break;

                case "Comments": Comments = dataRow["Comments"].ToString().Deserialize <Comments>() ?? new Comments(); SavedComments = Comments.ToJson(); break;

                case "Creator": Creator = SiteInfo.User(dataRow.Int(name)); SavedCreator = Creator.Id; break;

                case "Updator": Updator = SiteInfo.User(dataRow.Int(name)); SavedUpdator = Updator.Id; break;

                case "CreatedTime": CreatedTime = new Time(dataRow, "CreatedTime"); SavedCreatedTime = CreatedTime.Value; break;

                case "UpdatedTime": UpdatedTime = new Time(dataRow, "UpdatedTime"); SavedUpdatedTime = UpdatedTime.Value; break;

                case "IsHistory": VerType = dataRow[name].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                }
            }
        }
Пример #51
0
        private void Set(DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "TenantId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            TenantId      = dataRow[column.ColumnName].ToInt();
                            SavedTenantId = TenantId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "TenantName":
                        TenantName      = dataRow[column.ColumnName].ToString();
                        SavedTenantName = TenantName;
                        break;

                    case "Title":
                        Title      = new Title(dataRow, "TenantId");
                        SavedTitle = Title.Value;
                        break;

                    case "Body":
                        Body      = dataRow[column.ColumnName].ToString();
                        SavedBody = Body;
                        break;

                    case "ContractSettings":
                        ContractSettings      = GetContractSettings(dataRow);
                        SavedContractSettings = ContractSettings?.RecordingJson();
                        break;

                    case "ContractDeadline":
                        ContractDeadline      = dataRow[column.ColumnName].ToDateTime();
                        SavedContractDeadline = ContractDeadline;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(dataRow[column.ColumnName].ToInt());
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(dataRow[column.ColumnName].ToInt());
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory": VerType = dataRow[column.ColumnName].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                    }
                }
            }
        }
Пример #52
0
 public RealExSettleRequest(string secret, string merchantId, string account, string orderId, string pasRef, string authCode, Comments comments)
     : base(secret, merchantId, account, orderId, pasRef, authCode, comments)
 {
     Type = "settle";
 }
Пример #53
0
        public void CommentsReadBySite_FromDbCorrectInputEditorsPicks_ReturnsValidList()
        {

            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            var siteId = 1;
            var userName = "******";

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);
            site.Stub(x => x.SiteID).Return(siteId);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.DoesFieldExist("SiteSpecificDisplayName")).Return(true);
            readerComments.Stub(x => x.GetStringNullAsEmpty("SiteSpecificDisplayName")).Return(userName);
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbysitenameeditorpicksfilter")).Return(readerComments);

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            siteList.Stub(x => x.GetSiteOptionValueBool(siteId, "User", "UseSiteSuffix")).Return(true);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            comments.FilterBy = FilterBy.EditorPicks;
            var commentList = comments.GetCommentsListBySite(site);

            Assert.IsNotNull(commentList);
            Assert.AreEqual(1, commentList.TotalCount);
            Assert.AreEqual(1, commentList.comments.Count);
            Assert.AreEqual(userName, commentList.comments[0].User.SiteSpecificDisplayName);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentsreadbysitenameeditorpicksfilter"));
        }
Пример #54
0
 public async Task <Comments> UpdateCommentsAsync([FromBody] Comments comments)
 {
     return(await _commentsService.UpdateCommentsAysnc(comments));
 }
Пример #55
0
        public void CommentsReadBySite_CacheInDateMissingActualObject_ReturnsValidList()
        {
            var lastUpdate = DateTime.Now.AddDays(1);
            var comments = new Comments(null, null, null, null);

            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var readerComments = mocks.DynamicMock<IDnaDataReader>();
            var readerLastUpdate = mocks.DynamicMock<IDnaDataReader>();

            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var siteName = "h2g2";
            string cacheKey = comments.CommentListCacheKey(0, "");

            cacheManager.Stub(x => x.GetData(cacheKey)).Return(null);
            cacheManager.Stub(x => x.GetData(cacheKey + "|LASTUPDATED")).Return(lastUpdate);
            site.Stub(x => x.ModerationStatus).Return(ModerationStatus.SiteStatus.UnMod);
            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            readerComments.Stub(x => x.HasRows).Return(true);
            readerComments.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerComments.Stub(x => x.GetInt32NullAsZero("totalresults")).Return(1);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsreadbysitename")).Return(readerComments);
            readerCreator.Stub(x => x.CreateDnaDataReader("commentsgetlastupdatebysite")).Return(readerLastUpdate);

            readerLastUpdate.Stub(x => x.HasRows).Return(true);
            readerLastUpdate.Stub(x => x.Read()).Return(true).Repeat.Once();
            readerLastUpdate.Stub(x => x.GetDateTime("lastupdated")).Return(lastUpdate);

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            comments = new Comments(null, readerCreator, cacheManager, siteList);
            var commentList = comments.GetCommentsListBySite(site);

            Assert.IsNotNull(commentList);
            Assert.AreEqual(1, commentList.TotalCount);
            Assert.AreEqual(1, commentList.comments.Count);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentsreadbysitename"));
        }
Пример #56
0
        private bool GetOriginalImageSize(List <string> originals, DoWorkEventArgs e)
        {
            var result = false;

            var setting = Application.Current.LoadSetting();

            if (setting.QueryOriginalImageSize)
            {
                var args = e.Argument is PrefetchingOpts ? e.Argument as PrefetchingOpts : new PrefetchingOpts();
                if (!args.PrefetchingPreview)
                {
                    return(result);
                }

                State = TaskStatus.WaitingToRun;

                var  comments  = Comments.Substring(0, Comments.IndexOf("]") + 1);
                var  count     = originals.Count;
                bool paralllel = args.ParallelPrefetching;
                var  parallels = args.PrefetchingDownloadParallel;
                if (paralllel)
                {
                    var opt = new ParallelOptions();
                    opt.MaxDegreeOfParallelism = parallels;
                    Parallel.ForEach(originals, opt, (url, loopstate, urlIndex) =>
                    {
                        try
                        {
                            var size = url.QueryImageFileSize(cancelToken: PrefetchingTaskCancelTokenSource).GetAwaiter().GetResult();
                            if (size > 0)
                            {
                                Comments = comments.Replace("]", $"] [ Q: {--count} / {originals.Count} ]");
                                if (ReportProgressSlim is Action)
                                {
                                    ReportProgressSlim.Invoke(async: false);
                                }
                                else if (ReportProgress is Action <double, string, TaskStatus> )
                                {
                                    ReportProgress.Invoke((double)Percentage, Comments, State);
                                }
                                this.DoEvents();
                            }
                        }
                        catch (Exception ex) { ex.ERROR("PREFETCHING"); }
                        finally { this.DoEvents(); Task.Delay(1).GetAwaiter().GetResult(); }
                    });
                }
                else
                {
                    SemaphoreSlim tasks = new SemaphoreSlim(parallels, parallels);
                    foreach (var url in originals)
                    {
                        if (PrefetchingBgWorker.CancellationPending)
                        {
                            e.Cancel = true; break;
                        }
                        if (tasks.Wait(-1, PrefetchingTaskCancelTokenSource.Token))
                        {
                            new Action(async() =>
                            {
                                try
                                {
                                    var size = await url.QueryImageFileSize(cancelToken: PrefetchingTaskCancelTokenSource);
                                    if (size > 0)
                                    {
                                        Comments = comments.Replace("]", $"] [ Q: {--count} / {originals.Count} ]");
                                        if (ReportProgressSlim is Action)
                                        {
                                            ReportProgressSlim.Invoke(async: false);
                                        }
                                        else if (ReportProgress is Action <double, string, TaskStatus> )
                                        {
                                            ReportProgress.Invoke((double)Percentage, Comments, State);
                                        }
                                        this.DoEvents();
                                    }
                                }
                                catch (Exception ex) { ex.ERROR("PREFETCHING"); }
                                finally { if (tasks is SemaphoreSlim && tasks.CurrentCount <= parallels)
                                          {
                                              tasks.Release();
                                          }
                                          this.DoEvents(); await Task.Delay(1); }
                            }).Invoke(async: false);
                        }
                    }
                }
                $"Query Original Imagee File Size : {Environment.NewLine}  Done [ {originals.Count} ]".ShowToast("INFO", tag: args.Name ?? Name ?? GetType().Name);
                State = count <= 0 ? TaskStatus.RanToCompletion : TaskStatus.Faulted;
                if (ReportProgressSlim is Action)
                {
                    ReportProgressSlim.Invoke(async: false);
                }
                else if (ReportProgress is Action <double, string, TaskStatus> )
                {
                    ReportProgress.Invoke(Percentage, Comments, State);
                }
                setting.SaveImageFileSizeData();
                result = true;
            }
            return(result);
        }
Пример #57
0
        public void CommentCreate_NotSignedInUserWithDisplayName_ReturnCorrectObject()
        {
            var siteName = "h2g2";
            var uid = "uid";
            var text = "test comment";
            var displayName = "notsignedin";
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var callingUser = mocks.DynamicMock<ICallingUser>();
            var commentForum = new CommentForum { Id = uid, SiteName = siteName, allowNotSignedInCommenting=true, NotSignedInUserId=1 };
            var commentInfo = new CommentInfo { text = text };
            commentInfo.User = new User { DisplayName = displayName };

            callingUser.Stub(x => x.IsSecureRequest).Return(true);

            callingUser.Stub(x => x.UserID).Return(1);
            callingUser.Stub(x => x.IsUserA(UserTypes.SuperUser)).Return(false).Constraints(Is.Anything());

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());

            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();
            reader.Stub(x => x.GetInt32NullAsZero("postid")).Return(1);

            readerCreator.Stub(x => x.CreateDnaDataReader("commentcreate")).Return(reader);

            site.Stub(x => x.SiteID).Return(1);
            siteList.Stub(x => x.GetSiteOptionValueString(1, "General", "ComplaintUrl")).Return("http://www.bbc.co.uk/dna/[sitename]/comments/UserComplaintPage?PostID=[postid]&s_start=1");
            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            comments.CallingUser = callingUser;
            var comment = comments.CreateComment(commentForum, commentInfo);

            Assert.IsNotNull(comment);
            Assert.AreEqual(displayName, comment.User.DisplayName);
            readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("commentcreate"));
            reader.AssertWasCalled(x => x.AddParameter("nickname", displayName));
        }
Пример #58
0
        private void Set(DataRow dataRow, string tableAlias = null)
        {
            AccessStatus = Databases.AccessStatuses.Selected;
            foreach (DataColumn dataColumn in dataRow.Table.Columns)
            {
                var column = new ColumnNameInfo(dataColumn.ColumnName);
                if (column.TableAlias == tableAlias)
                {
                    switch (column.Name)
                    {
                    case "GroupId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            GroupId      = dataRow[column.ColumnName].ToInt();
                            SavedGroupId = GroupId;
                        }
                        break;

                    case "DeptId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            DeptId      = dataRow[column.ColumnName].ToInt();
                            SavedDeptId = DeptId;
                        }
                        break;

                    case "UserId":
                        if (dataRow[column.ColumnName] != DBNull.Value)
                        {
                            UserId      = dataRow[column.ColumnName].ToInt();
                            SavedUserId = UserId;
                        }
                        break;

                    case "Ver":
                        Ver      = dataRow[column.ColumnName].ToInt();
                        SavedVer = Ver;
                        break;

                    case "Admin":
                        Admin      = dataRow[column.ColumnName].ToBool();
                        SavedAdmin = Admin;
                        break;

                    case "Comments":
                        Comments      = dataRow[column.ColumnName].ToString().Deserialize <Comments>() ?? new Comments();
                        SavedComments = Comments.ToJson();
                        break;

                    case "Creator":
                        Creator      = SiteInfo.User(dataRow[column.ColumnName].ToInt());
                        SavedCreator = Creator.Id;
                        break;

                    case "Updator":
                        Updator      = SiteInfo.User(dataRow[column.ColumnName].ToInt());
                        SavedUpdator = Updator.Id;
                        break;

                    case "CreatedTime":
                        CreatedTime      = new Time(dataRow, column.ColumnName);
                        SavedCreatedTime = CreatedTime.Value;
                        break;

                    case "UpdatedTime":
                        UpdatedTime      = new Time(dataRow, column.ColumnName); Timestamp = dataRow.Field <DateTime>(column.ColumnName).ToString("yyyy/M/d H:m:s.fff");
                        SavedUpdatedTime = UpdatedTime.Value;
                        break;

                    case "IsHistory": VerType = dataRow[column.ColumnName].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break;
                    }
                }
            }
        }
Пример #59
0
        public void CommentCreate_BannedUser_ReturnCorrectError()
        {
            var siteName = "h2g2";
            var uid = "uid";
            var siteList = mocks.DynamicMock<ISiteList>();
            var readerCreator = mocks.DynamicMock<IDnaDataReaderCreator>();
            var site = mocks.DynamicMock<ISite>();
            var reader = mocks.DynamicMock<IDnaDataReader>();
            var cacheManager = mocks.DynamicMock<ICacheManager>();
            var callingUser = mocks.DynamicMock<ICallingUser>();
            var commentForum = new CommentForum { Id = uid, SiteName = siteName };
            var commentInfo = new CommentInfo { text = "test" };

            callingUser.Stub(x => x.IsSecureRequest).Return(true);

            callingUser.Stub(x => x.UserID).Return(1);
            callingUser.Stub(x => x.IsUserA(UserTypes.BannedUser)).Return(true);

            cacheManager.Stub(x => x.GetData("")).Return(null).Constraints(Is.Anything());

            site.Stub(x => x.IsEmergencyClosed).Return(false);
            site.Stub(x => x.IsSiteScheduledClosed(DateTime.Now)).Return(false);

            reader.Stub(x => x.HasRows).Return(true);
            reader.Stub(x => x.Read()).Return(true).Repeat.Once();

            readerCreator.Stub(x => x.CreateDnaDataReader("commentcreate")).Return(reader);

            siteList.Stub(x => x.GetSite(siteName)).Return(site);
            mocks.ReplayAll();

            var comments = new Comments(null, readerCreator, cacheManager, siteList);
            comments.CallingUser = callingUser;
            try
            {
                comments.CreateComment(commentForum, commentInfo);
                throw new Exception("No exception thrown");
            }
            catch (ApiException ex)
            {
                Assert.AreEqual(ErrorType.UserIsBanned, ex.type);

            }

            readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("commentcreate"));
        }
Пример #60
0
        public void SetByForm(
            Context context,
            SiteSettings ss,
            Dictionary <string, string> formData)
        {
            formData.ForEach(data =>
            {
                var key   = data.Key;
                var value = data.Value ?? string.Empty;
                switch (key)
                {
                case "Groups_TenantId": TenantId = value.ToInt(); break;

                case "Groups_GroupName": GroupName = value.ToString(); break;

                case "Groups_Body": Body = value.ToString(); break;

                case "Groups_Disabled": Disabled = value.ToBool(); break;

                case "Groups_Timestamp": Timestamp = value.ToString(); break;

                case "Comments": Comments.Prepend(
                        context: context,
                        ss: ss,
                        body: value); break;

                case "VerUp": VerUp = value.ToBool(); break;

                default:
                    if (key.RegexExists("Comment[0-9]+"))
                    {
                        Comments.Update(
                            context: context,
                            ss: ss,
                            commentId: key.Substring("Comment".Length).ToInt(),
                            body: value);
                    }
                    else
                    {
                        var column = ss.GetColumn(
                            context: context,
                            columnName: key.Split_2nd('_'));
                        switch (Def.ExtendedColumnTypes.Get(column?.ColumnName))
                        {
                        case "Class":
                            Class(
                                columnName: column.ColumnName,
                                value: value);
                            break;

                        case "Num":
                            Num(
                                columnName: column.ColumnName,
                                value: new Num(
                                    context: context,
                                    column: column,
                                    value: value));
                            break;

                        case "Date":
                            Date(
                                columnName: column.ColumnName,
                                value: value.ToDateTime().ToUniversal(context: context));
                            break;

                        case "Description":
                            Description(
                                columnName: column.ColumnName,
                                value: value);
                            break;

                        case "Check":
                            Check(
                                columnName: column.ColumnName,
                                value: value.ToBool());
                            break;

                        case "Attachments":
                            Attachments(
                                columnName: column.ColumnName,
                                value: value.Deserialize <Attachments>());
                            break;
                        }
                    }
                    break;
                }
            });
            if (context.QueryStrings.ContainsKey("ver"))
            {
                Ver = context.QueryStrings.Int("ver");
            }
            if (context.Action == "deletecomment")
            {
                DeleteCommentId = formData.Get("ControlId")?
                                  .Split(',')
                                  ._2nd()
                                  .ToInt() ?? 0;
                Comments.RemoveAll(o => o.CommentId == DeleteCommentId);
            }
        }