public static ContentComment LeaveComment(string contentId, string commentText, string destinationUserId, string replyToCommentId, string fileName, string commentType) { try { var guidDestinationUserId = !string.IsNullOrEmpty(destinationUserId) ? (Guid?)Guid.Parse(destinationUserId) : null; var guidReplyToCommentId = !string.IsNullOrEmpty(replyToCommentId) ? (Guid?)Guid.Parse(replyToCommentId) : null; commentText = commentText.Replace("\n", "#@#"); commentText = Sanitizer.GetSafeHtmlFragment(commentText); commentText = commentText.Replace("\r\n", "") .Replace("<p><br></p>", "") .Replace("#@#", "\n"); var publicationCommentMap = ContentCommentRepository.Add(CurrentUser.Instance.SiteID, CurrentUser.Instance.ID, Guid.Parse(contentId), commentText, guidDestinationUserId, guidReplyToCommentId, fileName, commentType.ToEnum <CommentTables>()); return(publicationCommentMap); } catch (Exception ex) { Log.Error(string.Format("ContentComment LeaveComment({0}, {1})", contentId, commentText), ex); return(null); } }
/// <summary> /// Handles the OnClick event of the lbtnUpdateNotFulfilledLiabilities control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void lbtnUpdateNotFulfilledLiabilities_OnClick(object sender, EventArgs e) { var invoice = DataManager.Invoice.SelectById(CurrentUser.Instance.SiteID, ObjectId); if (invoice != null) { var commentText = string.Format("Не выполнены обязательства Исполнителя для оплаты счета. Причины: {0}", txtNotFulfilledLiabilities.Text); ContentCommentRepository.Add(CurrentUser.Instance.SiteID, CurrentUser.Instance.ID, invoice.ID, commentText, null, null, string.Empty, CommentTables.tbl_InvoiceComment); invoice.IsExistBuyerComplaint = true; DataManager.Invoice.Update(invoice); } txtNotFulfilledLiabilities.Text = string.Empty; ucNotificationMessage.Text = "Комментарий успешно добавлен."; if (!Page.ClientScript.IsStartupScriptRegistered("CloseNotFulfilledLiabilitiesRadWindow")) { ScriptManager.RegisterStartupScript(Page, typeof(Page), "CloseNotFulfilledLiabilitiesRadWindow", "CloseNotFulfilledLiabilitiesRadWindow();", true); } }
/// <summary> /// Handles the OnClick event of the lbtnUpdatePostponePaymentDate control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void lbtnUpdatePostponePaymentDate_OnClick(object sender, EventArgs e) { var invoice = DataManager.Invoice.SelectById(CurrentUser.Instance.SiteID, ObjectId); if (invoice != null) { var commentText = string.Format("Перенесена дата оплаты с {0} на {1}. Причины: {2}", invoice.PaymentDatePlanned.HasValue ? invoice.PaymentDatePlanned.Value.ToString("dd.MM.yyyy") : "[Дата не установлена]", rdpInvoicePlannedPaymentDate.SelectedDate.Value.ToString("dd.MM.yyyy"), txtCommentForManager.Text); ContentCommentRepository.Add(CurrentUser.Instance.SiteID, CurrentUser.Instance.ID, invoice.ID, commentText, null, null, string.Empty, CommentTables.tbl_InvoiceComment); invoice.PaymentDatePlanned = rdpInvoicePlannedPaymentDate.SelectedDate; lrlPaymentDatePlanned.Text = rdpInvoicePlannedPaymentDate.SelectedDate.Value.ToString("dd.MM.yyyy"); DataManager.Invoice.Update(invoice); } rdpInvoicePlannedPaymentDate.SelectedDate = null; txtCommentForManager.Text = string.Empty; ucNotificationMessage.Text = "Дата оплаты успешно перенесена."; if (!Page.ClientScript.IsStartupScriptRegistered("ClosePostponePaymentDateRadWindow")) { ScriptManager.RegisterStartupScript(Page, typeof(Page), "ClosePostponePaymentDateRadWindow", "ClosePostponePaymentDateRadWindow();", true); } }
public static IEnumerable <ContentComment> GetComments(string contentId, string commentType) { try { var result = ContentCommentRepository.GetComments(CurrentUser.Instance, Guid.Parse(contentId), commentType.ToEnum <CommentTables>()).OrderByDescending(c => c.CreatedAt).ToList(); return(result); } catch (Exception ex) { Log.Error(string.Format("Comments GetComment({0}, {1})", contentId, commentType), ex); return(null); } }
public static IEnumerable <ContentCommentAuthor> GetContentCommentAuthors(string contentId, string commentType) { try { var result = ContentCommentRepository.SelectContentCommentAuthors(CurrentUser.Instance.SiteID, Guid.Parse(contentId), commentType.ToEnum <CommentTables>()); return(result); } catch (Exception ex) { Log.Error(string.Format("Comments GetContentCommentAuthors({0}, {1})", contentId, commentType), ex); return(null); } }
public static string LikeComment(string contentId, string commentId, string commentType) { try { var isLike = ContentCommentRepository.LikeComment(CurrentUser.Instance, Guid.Parse(contentId), Guid.Parse(commentId), commentType.ToEnum <CommentTables>()); return(isLike.ToString()); } catch (Exception ex) { Log.Error(string.Format("ContentComment LikeComment({0}, {1}, {2})", contentId, commentId, commentType), ex); return(null); } }
/// <summary> /// Replaces the specified subject. /// </summary> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> public override void Replace(ref string subject, ref string body) { if (!SiteAction.ObjectID.HasValue) { return; } PortalSettings = DataManager.PortalSettings.SelectMapBySiteId(SiteAction.SiteID, true); ReplaceUserInfo(ref body); if (PortalSettings != null) { PortalLink = DataManager.PortalSettings.SelectPortalLink(PortalSettings.SiteID); RequirementLinkTemplate = RequirementLinkTemplate.Replace("#PortalLink#", PortalLink); } var requirementComment = ContentCommentRepository.SelectById(SiteAction.SiteID, (Guid)SiteAction.ObjectID, CommentTables.tbl_RequirementComment); var requirement = DataManager.Requirement.SelectById(SiteAction.SiteID, requirementComment.ContentID); if (requirement == null) { return; } if (requirement.CompanyID.HasValue) { subject = subject.Replace("#Requirement.Notification.Company#", requirement.tbl_Company.Name); body = body.Replace("#Requirement.Notification.Company#", requirement.tbl_Company.Name); } else { subject = subject.Replace("#Requirement.Notification.Company#", string.Empty); body = body.Replace("#Requirement.Notification.Company#", string.Empty); } var replyLink = "Ответить"; var shortDescription = requirement.ShortDescription; if (PortalSettings != null) { var requirementLink = string.Format(RequirementLinkTemplate, requirement.ID); replyLink = string.Format("<a href='{0}'>Ответить</a>", requirementLink); shortDescription = string.Format("<a href='{0}'>{1}</a>", requirementLink, shortDescription); } body = body.Replace("#Requirement.ShortDescription#", shortDescription) .Replace("#Requirement.Comment#", requirementComment.Comment) .Replace("#Requirement.Comment.ReplyLink#", replyLink); }
public static ContentComment GetComment(string commentId, string commentType) { try { var result = ContentCommentRepository.SelectById(CurrentUser.Instance.SiteID, Guid.Parse(commentId), commentType.ToEnum <CommentTables>(), true); return(result); } catch (Exception ex) { Log.Error(string.Format("ContentComment GetCommentText({0}, {1})", commentId, commentType), ex); return(null); } }
/// <summary> /// Binds the data. /// </summary> private void BindData() { CommentsCount = ContentCommentRepository.GetCommentsCount(CurrentUser.Instance.SiteID, ContentId, CommentType); OfficialComment = ContentCommentRepository.SelectOfficialComment(CurrentUser.Instance.SiteID, ContentId, CommentType); tbl_ServiceLevelClient serviceLevelClient = null; var dataManager = new DataManager(); switch (CommentType) { case CommentTables.tbl_RequirementComment: var requirement = dataManager.Requirement.SelectById(CurrentUser.Instance.SiteID, ContentId); if (requirement != null) { serviceLevelClient = requirement.tbl_ServiceLevel.tbl_ServiceLevelClient.FirstOrDefault( o => o.ClientID == requirement.CompanyID); } break; case CommentTables.tbl_RequestComment: var request = dataManager.Request.SelectById(CurrentUser.Instance.SiteID, ContentId); if (request != null) { serviceLevelClient = request.tbl_ServiceLevel.tbl_ServiceLevelClient.FirstOrDefault( o => o.ClientID == request.CompanyID); } break; } if (serviceLevelClient != null) { rprDesitnations.DataSource = serviceLevelClient.tbl_ServiceLevelContact.Where( o => o.tbl_Contact.tbl_User.FirstOrDefault() != null).Select( o => new { UserID = o.tbl_Contact.tbl_User.FirstOrDefault().ID, o.tbl_Contact.UserFullName }); rprDesitnations.DataBind(); } }
public static bool DeleteComment(string commentId, string commentType) { try { var contentComment = ContentCommentRepository.SelectById(CurrentUser.Instance.SiteID, Guid.Parse(commentId), commentType.ToEnum <CommentTables>()); if (contentComment != null && !string.IsNullOrEmpty(contentComment.FileName)) { var fsp = new FileSystemProvider(); fsp.Delete(CurrentUser.Instance.SiteID, EnumHelper.GetEnumDescription(commentType.ToEnum <CommentTables>()), contentComment.FileName, FileType.Attachment); } ContentCommentRepository.Delete(CurrentUser.Instance.SiteID, Guid.Parse(commentId), commentType.ToEnum <CommentTables>()); return(true); } catch (Exception ex) { Log.Error(string.Format("ContentComment DeleteComment({0}, {1})", commentId, commentType), ex); return(false); } }
public static IEnumerable <ContentComment> GetComments(string contentId, string commentType) { try { var result = ContentCommentRepository.GetComments(CurrentUser.Instance, Guid.Parse(contentId), commentType.ToEnum <CommentTables>(), true).OrderByDescending(c => c.CreatedAt).ToList(); foreach (var contentComment in result) { contentComment.Comment = contentComment.Comment.Replace("=\"/files/", "=\"" + ConfigurationManager.AppSettings["LeadForceSiteUrl"] + "/files/"); } return(result); } catch (Exception ex) { Log.Error(string.Format("Comments GetComment({0}, {1})", contentId, commentType), ex); return(null); } }
/// <summary> /// Saves the comment. /// </summary> /// <param name="request">The request.</param> public void SaveComment(tbl_Request request) { if (SelectedRequirementId.HasValue && !string.IsNullOrEmpty(Comment) && request.ContactID.HasValue) { var user = DataManager.User.SelectByContactIdExtended(CurrentUser.Instance.SiteID, (Guid)request.ContactID) ?? DataManager.User.AddPortalUser(CurrentUser.Instance.SiteID, (Guid)request.ContactID); if (user != null) { var requirement = DataManager.Requirement.SelectById(CurrentUser.Instance.SiteID, (Guid)SelectedRequirementId); if (!request.tbl_Requirement.Any(o => o.ID == requirement.ID)) { request.tbl_Requirement.Add(requirement); DataManager.Request.Update(request); } ContentCommentRepository.Add(CurrentUser.Instance.SiteID, user.ID, (Guid)SelectedRequirementId, Comment, null, null, string.Empty, CommentTables.tbl_RequirementComment); } } }
public static string CheckOfficialAnswer(string contentId, string commentId, string commentType) { try { ContentCommentRepository.UpdateOfficialAnswers(CurrentUser.Instance.SiteID, Guid.Parse(contentId), commentType.ToEnum <CommentTables>()); var guidCommentId = Guid.Parse(commentId); var toUpdatePublicationComment = ContentCommentRepository.SelectById(CurrentUser.Instance.SiteID, guidCommentId, commentType.ToEnum <CommentTables>()); if (toUpdatePublicationComment != null) { toUpdatePublicationComment.IsOfficialAnswer = true; ContentCommentRepository.Update(CurrentUser.Instance.SiteID, toUpdatePublicationComment, commentType.ToEnum <CommentTables>()); } return(string.Empty); } catch (Exception ex) { Log.Error(string.Format("ContentComment CheckOfficialAnswer({0}, {1}, {2})", contentId, commentId, commentType), ex); return("error"); } }
/// <summary> /// Replaces the specified subject. /// </summary> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> public override void Replace(ref string subject, ref string body) { if (!SiteAction.ObjectID.HasValue) { return; } PortalSettings = DataManager.PortalSettings.SelectMapBySiteId(SiteAction.SiteID, true); ReplaceUserInfo(ref body); if (PortalSettings != null) { PortalLink = DataManager.PortalSettings.SelectPortalLink(PortalSettings.SiteID); RequestLinkTemplate = RequestLinkTemplate.Replace("#PortalLink#", PortalLink); } var invoiceComment = ContentCommentRepository.SelectById(SiteAction.SiteID, (Guid)SiteAction.ObjectID, CommentTables.tbl_InvoiceComment); var invoice = DataManager.Invoice.SelectById(SiteAction.SiteID, invoiceComment.ContentID); if (invoice == null) { return; } subject = subject.Replace("#Invoice.Number#", invoice.Number).Replace("#Invoice.CreatedAt#", invoice.CreatedAt.ToString("dd.MM.yyyy")); body = body.Replace("#Invoice.Number#", invoice.Number).Replace("#Invoice.CreatedAt#", invoice.CreatedAt.ToString("dd.MM.yyyy")).Replace("#Invoice.Comment#", invoiceComment.Comment); if (invoice.BuyerCompanyID.HasValue) { var company = DataManager.Company.SelectById(SiteAction.SiteID, invoice.BuyerCompanyID.Value); subject = subject.Replace("#Invoice.Notification.Company#", company.Name); body = body.Replace("#Invoice.Notification.Company#", company.Name); } else { subject = subject.Replace("#Invoice.Notification.Company#", string.Empty); body = body.Replace("#Invoice.Notification.Company#", string.Empty); } }
public static string UpdateCommentText(string commentId, string commentText, string commentType) { try { var comment = ContentCommentRepository.SelectById(CurrentUser.Instance.SiteID, Guid.Parse(commentId), commentType.ToEnum <CommentTables>()); if (comment != null && comment.SiteID == CurrentUser.Instance.SiteID) { commentText = Sanitizer.GetSafeHtmlFragment(commentText); comment.Comment = commentText; ContentCommentRepository.Update(CurrentUser.Instance.SiteID, comment, commentType.ToEnum <CommentTables>()); return(comment.Comment.ToHtml()); } return(string.Empty); } catch (Exception ex) { Log.Error(string.Format("ContentComment UpdateCommentText({0}, {1}, {2})", commentId, commentText, commentType), ex); return(null); } }
/// <summary> /// Handles the OnClick event of the lbtnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void lbtnSave_OnClick(object sender, EventArgs e) { if (!Page.IsValid) { return; } if (!access.Write) { return; } var requirement = DataManager.Requirement.SelectById(SiteId, _requirementId) ?? new tbl_Requirement(); requirement.ShortDescription = (txtShortDescription.Text.Length > 2048 ? txtShortDescription.Text.Substring(0, 2048) : txtShortDescription.Text); //requirement.LongDescription = ucLongDescription.Content; requirement.RequestSourceTypeID = dcbRequestSourceType.SelectedIdNullable; requirement.RequirementStatusID = ucRequirementStatus.RequirementStatusId; requirement.RequestID = dcbRequests.SelectedIdNullable; requirement.ProductID = dcbProducts.SelectedIdNullable; requirement.CompanyID = dcbCompany.SelectedIdNullable; requirement.ContactID = ucContact.SelectedValue; requirement.ProductSeriesNumber = txtProductSeriesNumber.Text; requirement.RequirementTypeID = dcbRequirementType.SelectedId; requirement.RequirementSeverityOfExposureID = dcbRequirementSeverityOfExposure.SelectedIdNullable; requirement.ServiceLevelID = dcbServiceLevel.SelectedId; requirement.ParentID = ucParentRequirment.ParentRequirementId; requirement.RequirementPriorityID = dcbRequirementPriority.SelectedIdNullable; requirement.RequirementComplexityID = dcbRequirementComplexity.SelectedIdNullable; if (ucPublicationCategory.SelectedCategoryId != Guid.Empty) { requirement.PublicationCategoryID = ucPublicationCategory.SelectedCategoryId; } else { requirement.PublicationCategoryID = null; } requirement.ResponsibleID = ucResponsible.SelectedValue; requirement.RealizationDatePlanned = rdpRealizationDatePlanned.SelectedDate; requirement.RealizationDateActual = rdpRealizationDateActual.SelectedDate; requirement.ContractID = dcbContract.SelectedIdNullable; requirement.OrderID = dcbOrder.SelectedIdNullable; requirement.InvoiceID = dcbInvoice.SelectedIdNullable; requirement.EvaluationRequirementsProductID = dcbEvaluationRequirementsProducts.SelectedIdNullable; requirement.AnyProductName = txtAnyProductName.Text; requirement.Quantity = (decimal)rntxtQuantity.Value; requirement.CurrencyID = dcbCurrency.SelectedIdNullable; requirement.CurrencyPrice = (decimal)rntxtCurrencyPrice.Value; requirement.CurrencyAmount = (decimal)rntxtCurrencyAmount.Value; requirement.UnitID = dcbUnit.SelectedIdNullable; requirement.Rate = (decimal)rntxtRate.Value; requirement.Price = (decimal)rntxtPrice.Value; requirement.Amount = (decimal)rntxtAmount.Value; requirement.RequirementImplementationCompleteID = dcbRequirementImplementationComplete.SelectedIdNullable; requirement.RequirementSpeedTimeID = dcbRequirementSpeedTime.SelectedIdNullable; requirement.RequirementSatisfactionID = dcbRequirementSatisfaction.SelectedIdNullable; requirement.EstimationComment = txtEstimationComment.Text; requirement.InternalUnitID = dcbInternalUnit.SelectedIdNullable; requirement.InternalQuantity = (decimal)rntxtInternalQuantity.Value; requirement.EstimateCommentInternal = txtEstimateCommentInternal.Text; requirement.EstimateCommentForClient = txtEstimateCommentForClient.Text; if (requirement.ID == Guid.Empty) { requirement.SiteID = SiteId; requirement.OwnerID = CurrentUser.Instance.ContactID; requirement.CreatedAt = DateTime.Now; var requestSourceType = DataManager.RequirementType.SelectById(SiteId, requirement.RequirementTypeID); if (requestSourceType != null) { var documentNumerator = DocumentNumerator.GetNumber((Guid)requestSourceType.NumeratorID, requirement.CreatedAt, requestSourceType.tbl_Numerator.Mask, "tbl_Requirement"); requirement.Number = documentNumerator.Number; requirement.SerialNumber = documentNumerator.SerialNumber; } DataManager.Requirement.Add(requirement); if (!string.IsNullOrEmpty(ucComment.Content)) { var contactId = requirement.ContactID ?? CurrentUser.Instance.ContactID; var user = DataManager.User.SelectByContactIdExtended(SiteId, (Guid)contactId) ?? DataManager.User.AddPortalUser(SiteId, (Guid)contactId); if (user != null) { ContentCommentRepository.Add(CurrentUser.Instance.SiteID, user.ID, requirement.ID, ucComment.Content, null, null, string.Empty, CommentTables.tbl_RequirementComment, false, false); } } if (!string.IsNullOrEmpty(txtComment.Text)) { var fileName = string.Empty; if (rauFileUpload.UploadedFiles.Count > 0) { var fsp = new FileSystemProvider(); fileName = fsp.Upload(CurrentUser.Instance.SiteID, EnumHelper.GetEnumDescription(CommentTables.tbl_RequirementComment), rauFileUpload.UploadedFiles[0].FileName, rauFileUpload.UploadedFiles[0].InputStream, FileType.Attachment); } ContentCommentRepository.Add(CurrentUser.Instance.SiteID, CurrentUser.Instance.ID, requirement.ID, txtComment.Text, null, null, fileName, CommentTables.tbl_RequirementComment, chxIsOfficialAnswer.Checked, false); } } else { DataManager.Requirement.Update(requirement); } if (!CheckRequestsToClose(requirement)) { Response.Redirect(UrlsData.AP_Requirements()); } }
/// <summary> /// Binds the data. /// </summary> private void BindData() { CommentsCount = ContentCommentRepository.GetCommentsCount(CurrentUser.Instance.SiteID, ContentId, CommentType, true); OfficialComment = ContentCommentRepository.SelectOfficialComment(CurrentUser.Instance.SiteID, ContentId, CommentType); }