protected override void DataBind() { _protocolDataSet = new ProtocolDataSet(); foreach (var collaboration in Items) { var row = _protocolDataSet.CollaborationDataTable.NewCollaborationDataTableRow(); row.Collaboration_ID = collaboration.Id.ToString(); row.Collaboration_Object = collaboration.CollaborationObject; row.Collaboration_RegistrationDate = collaboration.RegistrationDate.ToString("dd/MM/yyyy"); _protocolDataSet.CollaborationDataTable.Rows.Add(row); } PrimaryTableName = "CollaborationDataTable"; DataSource = _protocolDataSet; }
protected override void DataBind() { FileLogger.Debug(LoggerName, "ProtocolReport.DataBind() - Caricamento dati di protocollo."); _protocolDataSet = new ProtocolDataSet(); foreach (var protocol in Items) { var cat = Factory.ProtocolFacade.GetCategory(protocol); var row = _protocolDataSet.ProtocolDataTable.NewProtocolDataTableRow(); row.Protocol_ID = string.Format("{0:0000}/{1:000000}", protocol.Year, protocol.Number); row.Protocol_Year = protocol.Year; row.Protocol_Number = protocol.Number; row.Protocol_Signature = Factory.ProtocolFacade.GenerateSignature(protocol, protocol.RegistrationDate.DateTime, new ProtocolSignatureInfo { DocumentType = ProtocolDocumentType.Main }); row.Protocol_Object = protocol.ProtocolObject; if (protocol.RegistrationDate != null) { row.Protocol_RegistrationDate = protocol.RegistrationDate.LocalDateTime; row.Protocol_FullNumber = ProtocolFacade.ProtocolFullNumber(protocol.Year, protocol.Number) + "\r\n" + string.Format("{0:dd/MM/yyyy}", protocol.RegistrationDate); } row.Protocol_RegistrationUser = protocol.RegistrationUser; // CLASSIFICATORE row.Category_ID = cat.Id; row.Category_Description = Factory.ProtocolFacade.GetCategoryDescription(protocol); row.Category_Code = Factory.ProtocolFacade.GetCategoryCode(protocol); row.Category_FullCode = cat.FullCodeDotted; // CONTENITORE if (protocol.Container != null) { row.Container_ID = protocol.Container.Id; row.Container_Description = protocol.Container.Name; } row.Protocol_DocumentCode = protocol.DocumentCode; if (protocol.DocumentDate != null) { row.Protocol_DocumentDate = protocol.DocumentDate.Value; } if (protocol.DocumentProtocol != null) { row.Protocol_DocumentProtocol = protocol.DocumentProtocol; //Protocollo del mittente già formattato row.Protocol_POrigin = string.Format("{0} {1}", protocol.DocumentProtocol.Replace("|", @"/"), protocol.DocumentDate.HasValue ? protocol.DocumentDate.Value.ToString("dd/MM/yyyy") : ""); } if (protocol.DocumentType != null) { row.DocumentType_ID = protocol.DocumentType.Id; row.DocumentType_Description = protocol.DocumentType.Description; } if (protocol.Status != null) { row.Protocol_Advanced_Status = protocol.Status.Description; } if (protocol.IdStatus.HasValue) { row.Protocol_StatusId = protocol.IdStatus.Value.ToString(CultureInfo.InvariantCulture); row.Protocol_StatusDescription = ProtocolFacade.GetStatusDescription(protocol.IdStatus.Value); //Annullamento if (protocol.IdStatus.Value == (int)ProtocolStatusId.Annullato) { row.Protocol_Cancellation = string.Format("Estremi Annullamento: {0}", StringHelper.ReplaceCrLf(protocol.LastChangedReason, "")); } } if (protocol.Type != null) { row.Protocol_TypeId = protocol.Type.Id.ToString(CultureInfo.InvariantCulture); row.Protocol_TypeName = ProtocolTypeFacade.CalcolaTipoProtocolloChar(protocol.Type.Id); row.Protocol_TypeDescription = ProtocolTypeFacade.CalcolaTipoProtocollo(protocol.Type.Id); } row.Protocol_ServiceCategory = protocol.ServiceCategory; row.Protocol_Note = protocol.Note; if (protocol.Location != null) { row.Protocol_Location = protocol.Location.Name; } if (protocol.AdvanceProtocol != null) { row.Protocol_Proposer = protocol.AdvanceProtocol.Subject; } row.Protocol_LastChangedDate = protocol.LastChangedDate.DefaultString(); row.Protocol_LastChangedUser = protocol.LastChangedUser; if (DocSuiteContext.Current.ProtocolEnv.ParerEnabled) { row.Protocol_ParerStatusCode = (int)Factory.ProtocolParerFacade.GetConservationStatus(protocol); var parerDescription = string.Empty; if (!Factory.ProtocolParerFacade.Exists(protocol)) { parerDescription = "Documento non ancora versato."; } else { switch (row.Protocol_ParerStatusCode) { case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Correct: parerDescription = "Conservazione corretta."; break; case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Warning: parerDescription = "Conservazione con avviso."; break; case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Error: parerDescription = "Conservazione con errori."; break; case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Undefined: parerDescription = "Stato conservazione non definito."; break; case (int)ProtocolParerFacade.ProtocolParerConservationStatus.NotNeeded: parerDescription = "Documento non soggetto a versamento."; break; } } row.Protocol_ParerStatusDescription = parerDescription; } //Verifico se ci sono settori autorizzati row.Protocol_hasRoles = (protocol.Roles.Count > 0).ToString(); _protocolDataSet.ProtocolDataTable.Rows.Add(row); //Mittenti foreach (var contact in Factory.ProtocolFacade.GetSenders(protocol)) { _protocolDataSet.ContactDataTable.Rows.Add(ContactDataBind(contact, row.Protocol_ID, true)); } //Destinatari foreach (var contact in Factory.ProtocolFacade.GetRecipients(protocol)) { _protocolDataSet.ContactDataTable.Rows.Add(ContactDataBind(contact, row.Protocol_ID, false)); } //TODO: inserire il datatable nelle ProcotolDataSet e fare il bind //Settori foreach (var protocolRole in protocol.Roles) { var roleRow = _protocolDataSet.RoleDataTable.NewRoleDataTableRow(); roleRow.Protocol_ID = row.Protocol_ID; roleRow.Role_ID = protocolRole.Role.Id; roleRow.Role_Name = protocolRole.Role.Name; _protocolDataSet.RoleDataTable.Rows.Add(roleRow); } foreach (var protocolEmail in protocol.OutgoingPecMailsActive) { var mailrow = _protocolDataSet.PECMailOutgoingDataTable.NewPECMailOutgoingDataTableRow(); mailrow.Protocol_ID = row.Protocol_ID; mailrow.IDPECMail = protocolEmail.Id; mailrow.MailSubject = protocolEmail.MailSubject; mailrow.MailDate = protocolEmail.MailDate.HasValue ? protocolEmail.MailDate.Value : DateTime.MinValue; _protocolDataSet.PECMailOutgoingDataTable.Rows.Add(mailrow); } foreach (var message in protocol.Messages) { foreach (var mail in message.Message.Emails) { var mailrow = _protocolDataSet.MessageEmailDataTable.NewMessageEmailDataTableRow(); mailrow.Protocol_ID = row.Protocol_ID; mailrow.IDMessageEmail = mail.Id; mailrow.Subject = mail.Subject; mailrow.SentDate = mail.SentDate.HasValue ? mail.SentDate.Value : DateTime.MinValue; _protocolDataSet.MessageEmailDataTable.Rows.Add(mailrow); } } } DataSource = _protocolDataSet; }