/// <summary>
        /// Creates reminding in case of successfull search.
        /// </summary>
        /// <param name="duplicateRecordIds">Collection of duplicate entity id.</param>
        protected virtual void CreateSuccessReminding()
        {
            var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, _schemaName);
            var duplicatesCountColumn = esq.AddColumn(esq.CreateAggregationFunction(AggregationTypeStrict.Count, "Id"));

            esq.UseAdminRights = false;
            Select esqSelect = esq.GetSelectQuery(_userConnection);
            string initialResultsTableName =
                string.Format("{0}{1}", _schemaName, InitialResultsTableSuffix);
            string recordIdColumnName = GetRecordIdColumnName(_schemaName);
            Select initialSelect      = new Select(_userConnection)
                                        .Column(recordIdColumnName)
                                        .From(initialResultsTableName).As(initialResultsTableName) as Select;

            initialSelect.Where(initialSelect.SourceExpression.Alias, recordIdColumnName)
            .IsEqual(esqSelect.SourceExpression.Alias, "Id");
            esqSelect.Where().Exists(initialSelect);
            var    countEntity     = esq.GetEntityCollection(_userConnection)[0];
            int    duplicatesCount = countEntity.GetTypedColumnValue <int>(duplicatesCountColumn.Name);
            string message         = string.Empty;

            if (duplicatesCount > 0)
            {
                message = string.Format(_userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                                             "SuccessfullDuplicatesSearchMessage"), duplicatesCount);
            }
            else
            {
                message = _userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                               "NoDuplicatesFoundMessage");
            }
            CreateReminding(message);
        }
        private string GetRemindingSubject(UserConnection userConnection, DeduplicationTaskStatus?deduplicationTaskStatus)
        {
            var localazibleStringName = string.Empty;

            switch (deduplicationTaskStatus)
            {
            case DeduplicationTaskStatus.Canceled:
                localazibleStringName = "FaildDuplicatesSearchMessage";
                break;

            case DeduplicationTaskStatus.Completed:
                // TODO: Remove after task CRM-43077
                return(userConnection.GetLocalizableString("CheckDeduplicationTaskStatusJobExecutor",
                                                           "SuccessfullDuplicatesSearchMessage"));

            case DeduplicationTaskStatus.Failed:
            case null:
                localazibleStringName = "FaildDuplicatesSearchMessage";
                break;

            default:
                return(null);
            }
            return(userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                       localazibleStringName));
        }
Exemple #3
0
        private string GetDateEvent(DateTime value)
        {
            string dateMacros    = _userConnection.GetLocalizableString(ClassName, "DateMacros");
            string timeMacros    = _userConnection.GetLocalizableString(ClassName, "TimeMacros");
            string bodyDateEvent = _userConnection.GetLocalizableString(ClassName, "BodyDateEvent");
            var    date          = value.ToString(dateMacros);
            var    time          = value.ToString(timeMacros);

            return(string.Format(bodyDateEvent, date, time));
        }
Exemple #4
0
        private string GetDate(string datetime)
        {
            var dateMacros = UserConnection.GetLocalizableString("OrderVisaNotificationProvider", "DateMacros");
            var result     = Convert.ToDateTime(datetime);

            return(result.ToString(dateMacros));
        }
        public override string GetRecordResult(Dictionary <string, string> dictionaryColumnValues)
        {
            var titleTemplate  = UserConnection.GetLocalizableString("ForecastNotificationProvider", "TitleTemplate");
            var bodyTemplate   = UserConnection.GetLocalizableString("ForecastNotificationProvider", "BodyTemplate");
            var notificationId = dictionaryColumnValues["Id"];
            var createdById    = dictionaryColumnValues["CreatedById"];
            var body           = dictionaryColumnValues["Description"];
            var title          = dictionaryColumnValues["SubjectCaption"];
            var entityId       = dictionaryColumnValues["EntityId"];
            var schemaName     = dictionaryColumnValues["SchemaName"];
            var imageId        = dictionaryColumnValues["ImageId"];

            body  = string.Format(bodyTemplate, body);
            title = string.Format(titleTemplate, title);
            var popup = new PopupData()
            {
                Title            = title,
                Body             = body,
                ImageId          = imageId,
                EntityId         = entityId,
                EntitySchemaName = schemaName
            };
            var serializePopup = popup.Serialize();

            return(string.Format(template, notificationId, serializePopup));
        }
        protected virtual string GetRemindingSubject(UserConnection userConnection, string schemaName, string remindingText)
        {
            string caption = userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                                 schemaName + "DuplicatesSearchCaption");

            return(string.Format("{0}: {1}", caption, remindingText));
        }
        /// <inheritdoc cref="IForecastSummaryColumnCalculator.ApplySummaryColumns"/>
        public void ApplySummaryColumns(UserConnection userConnection, ICollection <TableColumn> columns)
        {
            userConnection.CheckArgumentNull(nameof(userConnection));
            if (columns.IsEmpty() || columns.Any(c => c.Code == SummaryCode))
            {
                return;
            }
            var summaryColumn = new TableColumn {
                Code     = SummaryCode,
                Caption  = userConnection.GetLocalizableString("ForecastLczResources", "SummaryCaption"),
                Children = new List <TableColumn>()
            };
            var subColumns = columns.ElementAt(0).Children;

            foreach (TableColumn column in subColumns)
            {
                if (!column.IsHide)
                {
                    summaryColumn.Children.Add(new TableColumn {
                        Caption = column.Caption,
                        Code    = column.Code,
                        Id      = column.Id
                    });
                }
            }
            columns.Add(summaryColumn);
        }
        private string GetTitle(Dictionary <string, string> dictionaryColumnValues)
        {
            var titleTemplate = UserConnection.GetLocalizableString("ForecastNotificationProvider", "TitleTemplate");
            var title         = dictionaryColumnValues["SubjectCaption"];

            title = string.Format(titleTemplate, title);
            return(title);
        }
        private string GetBody(Dictionary <string, string> dictionaryColumnValues)
        {
            var bodyTemplate = UserConnection.GetLocalizableString("ForecastNotificationProvider", "BodyTemplate");
            var body         = dictionaryColumnValues["Description"];

            body = string.Format(bodyTemplate, body);
            return(body);
        }
        private void CreateReminding(UserConnection userConnection, DeduplicationTaskStatus?deduplicationTaskStatus,
                                     string entityName)
        {
            var remindingDescription = userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                                           "RemindingDescription");
            var remindingSubject = GetRemindingSubject(userConnection, deduplicationTaskStatus);

            DeduplicationRemindingRepository.CreateReminding(userConnection, remindingDescription, remindingSubject, entityName);
        }
 private void SetStringValue()
 {
     _titleCommented  = UserConnection.GetLocalizableString("ESNNotificationProvider", "TitleCommented");
     _titleMentioned  = UserConnection.GetLocalizableString("ESNNotificationProvider", "TitleMentioned");
     _titleNewMessage = UserConnection.GetLocalizableString("ESNNotificationProvider", "TitleNewMessage");
     _titleLiked      = UserConnection.GetLocalizableString("ESNNotificationProvider", "TitleLiked");
     _dateMacros      = UserConnection.GetLocalizableString("ESNNotificationProvider", "DateMacros");
     _timeMacros      = UserConnection.GetLocalizableString("ESNNotificationProvider", "TimeMacros");
     _bodyDateEvent   = UserConnection.GetLocalizableString("ESNNotificationProvider", "BodyDateEvent");
 }
        private Dictionary <string, string> GelLczDataDictionary(IEnumerable <string> keys)
        {
            var resources = new Dictionary <string, string>();

            foreach (string key in keys)
            {
                resources[key] = UserConnection.GetLocalizableString(LczResourcesSchemaName, key);
            }
            return(resources);
        }
Exemple #13
0
 private void SetResources()
 {
     _bodyContact  = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "BodyContact");
     _bodyAccount  = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "BodyAccount");
     _titleContact = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "TitleContact");
     _titleAccount = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "TitleAccount");
     _th           = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "thOrdinal");
     _st           = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "stOrdinal");
     _nd           = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "ndOrdinal");
     _rd           = UserConnection.GetLocalizableString("AnniversaryNotificationProvider", "rdOrdinal");
 }
        private string GetDate(string datetime)
        {
            if (String.IsNullOrEmpty(datetime))
            {
                return(string.Empty);
            }
            var dateMacros = UserConnection.GetLocalizableString("ContractVisaNotificationProvider", "DateMacros");
            var result     = Convert.ToDateTime(datetime);

            return(result.ToString(dateMacros));
        }
Exemple #15
0
        public Dictionary <string, string> GetLczData(string keysStr)
        {
            string[] keys      = keysStr.Split(',');
            var      resources = new Dictionary <string, string>();

            foreach (string key in keys)
            {
                resources[key] = UserConnection.GetLocalizableString("ForecastResources", key);
            }
            return(resources);
        }
Exemple #16
0
        private string FormatDate(string datetime)
        {
            DateTime result;
            string   dateMacros = UserConnection.GetLocalizableString(ResourceManagerName, "DateMacros");

            if (DateTime.TryParse(datetime, out result))
            {
                return(result.ToString(dateMacros));
            }
            return(datetime ?? string.Empty);
        }
        /// <summary>
        /// Methods gets HierarchyData and copy records.
        /// </summary>
        /// <param name="schemaName"><see cref="string"/> Entity schema name. </param>
        /// <param name="recordId"><see cref="Guid"/> Main record id. </param>
        /// <returns><see cref="Guid"/> Id of created record.</returns>
        public virtual CopyingResult CopyRecord(string schemaName, Guid recordId)
        {
            if (!HasRightsToCopyRecord(schemaName, recordId))
            {
                var errorMessage = UserConnection.GetLocalizableString("HierarchyDataCopyingController", "RecordRightsErrorMessage");
                return(new CopyingResult(errorMessage));
            }

            HierarchyDataStructure hierarchyData = GetStructure(schemaName);
            var copyRecordId = CopyHierarchyData(hierarchyData, recordId);

            return(new CopyingResult(copyRecordId));
        }
Exemple #18
0
        protected override INotificationInfo GetRecordNotificationInfo(Dictionary <string, string> dictionaryColumnValues)
        {
            var  title = UserConnection.GetLocalizableString("OrderVisaNotificationProvider", "TitleTemplate");
            Guid imageId;

            Guid.TryParse(dictionaryColumnValues["ImageId"], out imageId);
            return(new NotificationInfo {
                Title = title,
                Body = GetBody(dictionaryColumnValues),
                ImageId = imageId,
                EntityId = new Guid(dictionaryColumnValues["VisaObjectId"]),
                EntitySchemaName = dictionaryColumnValues["VisaSchemaName"],
                MessageId = new Guid(dictionaryColumnValues["Id"]),
                SysAdminUnit = new Guid(dictionaryColumnValues["SysAdminUnitId"]),
                GroupName = Group
            });
        }
Exemple #19
0
        private string GetBody(Dictionary <string, string> dictionaryColumnValues)
        {
            var bodyTemplate = UserConnection.GetLocalizableString("InvoiceNotificationProvider", "BodyTemplate");
            var number       = dictionaryColumnValues["Number"];
            var startDate    = dictionaryColumnValues["StartDate"];
            var contactName  = dictionaryColumnValues["ContactName"];
            var accountName  = dictionaryColumnValues["AccountName"];
            var date         = GetDate(startDate);
            var body         = string.Format(bodyTemplate, number, date);
            var customer     = (new List <string>()
            {
                accountName, contactName
            })
                               .Where(item => !string.IsNullOrWhiteSpace(item));

            body += string.Join(", ", customer);
            return(body);
        }
Exemple #20
0
        protected override INotificationInfo GetRecordNotificationInfo(Dictionary <string, string> dictionaryColumnValues)
        {
            string body          = GetBody(dictionaryColumnValues);
            Guid   imageId       = NotificationUtilities.GetSysImageBySchemaName(UserConnection, "Invoice");
            string titleTemplate = UserConnection.GetLocalizableString("InvoiceNotificationProvider", "TitleTemplate");

            return(new NotificationInfo()
            {
                Title = titleTemplate,
                Body = body,
                ImageId = imageId,
                EntityId = new Guid(dictionaryColumnValues["InvoiceId"]),
                EntitySchemaName = "Invoice",
                MessageId = new Guid(dictionaryColumnValues["Id"]),
                SysAdminUnit = new Guid(dictionaryColumnValues["SysAdminUnitId"]),
                GroupName = Group
            });
        }
        public override string GetRecordResult(Dictionary <string, string> dictionaryColumnValues)
        {
            var body           = GetBody(dictionaryColumnValues);
            var title          = UserConnection.GetLocalizableString("ContractVisaNotificationProvider", "TitleTemplate");
            var notificationId = dictionaryColumnValues["Id"];
            var entityId       = dictionaryColumnValues["VisaObjectId"];
            var schemaName     = dictionaryColumnValues["SchemaName"];
            var imageId        = dictionaryColumnValues["ImageId"];
            var popup          = new PopupData()
            {
                Title            = title,
                Body             = body,
                ImageId          = imageId,
                EntityId         = entityId,
                EntitySchemaName = schemaName
            };
            var serializePopup = popup.Serialize();

            return(string.Format(template, notificationId, serializePopup));
        }
Exemple #22
0
        public ConfigurationServiceResponse GetIsValidColumn(Guid columnTypeId, string settings)
        {
            var response = new ConfigurationServiceResponse();

            if (columnTypeId.Equals(ForecastConsts.FormulaColumnTypeId))
            {
                var formulaItems = FormulaUtilities.DeserializeFormula(new ForecastColumn {
                    Settings = settings
                });
                var isValid = FormulaUtilities.Validate(formulaItems);
                response.Success = isValid;
                if (!isValid)
                {
                    var message = UserConnection.GetLocalizableString("ForecastResources", "FormulaNotValidMessage");
                    response.ErrorInfo = new ErrorInfo {
                        Message = message
                    };
                }
            }
            return(response);
        }
        private string GetBody(Dictionary <string, string> dictionaryColumnValues)
        {
            var body                 = UserConnection.GetLocalizableString("ContractVisaNotificationProvider", "BodyTemplate");
            var number               = dictionaryColumnValues["Title"];
            var dateTime             = dictionaryColumnValues["Date"];
            var account              = dictionaryColumnValues["Account"];
            var contact              = dictionaryColumnValues["Contact"];
            var date                 = GetDate(dateTime);
            var accountContactString = string.Format("{0}, {1}", account, contact);

            if (String.IsNullOrEmpty(account))
            {
                accountContactString = contact;
            }
            if (String.IsNullOrEmpty(contact))
            {
                accountContactString = account;
            }
            body = string.Format(body, number, date, accountContactString);
            return(body);
        }
        public override string GetRecordResult(Dictionary <string, string> dictionaryColumnValues)
        {
            var    title      = UserConnection.GetLocalizableString("ActivityNotificationProvider", "Title");
            var    id         = dictionaryColumnValues["Id"];
            var    remindTime = dictionaryColumnValues["RemindTime"];
            var    activityId = dictionaryColumnValues["ActivityId"];
            var    imageId    = dictionaryColumnValues["ImageId"];
            string body       = GetBody(dictionaryColumnValues);
            var    key        = id + "_" + remindTime;
            var    popup      = new PopupData()
            {
                Title            = title,
                Body             = body,
                ImageId          = imageId,
                EntityId         = activityId,
                EntitySchemaName = "Activity"
            };
            var serializePopup = popup.Serialize();

            return(string.Format("\"{0}\": {1}", key, serializePopup));
        }
        public ConfigurationServiceResponse GetIsValidColumn(Guid columnTypeId, string settings, FormulaSettingType type = FormulaSettingType.Default)
        {
            var response = new ConfigurationServiceResponse();

            if (columnTypeId.Equals(ForecastConsts.FormulaColumnTypeId))
            {
                var forecastColumn = new ForecastColumn {
                    Settings = settings
                };
                var formulaSetting = forecastColumn.GetColumnSettings <FormulaSetting>();
                var isValid        = IsFormulaInColumnValid(formulaSetting, type);
                response.Success = isValid;
                if (!isValid)
                {
                    var message = UserConnection.GetLocalizableString(LczResourcesSchemaName, "FormulaNotValidMessage");
                    response.ErrorInfo = new ErrorInfo {
                        Message = message
                    };
                }
            }
            return(response);
        }
Exemple #26
0
        /// <summary>
        /// Returns the record visa notification text.
        /// </summary>
        /// <param name="columnValues">Column values.</param>
        public override string GetRecordResult(Dictionary <string, string> columnValues)
        {
            string bodyTemplate   = UserConnection.GetLocalizableString(ResourceManagerName, "BodyTemplate");
            string titleTemplate  = UserConnection.GetLocalizableString(ResourceManagerName, "TitleTemplate");
            string notificationId = columnValues["Id"];
            string objective      = columnValues["Title"];
            string dateTime       = columnValues["Date"];
            string entityId       = columnValues["VisaObjectId"];
            string schemaName     = columnValues["SchemaName"];
            string schemaCaption  = columnValues["VisaSchemaCaption"];
            string body           = string.Format(bodyTemplate, schemaCaption, objective, FormatDate(dateTime));
            var    popup          = new PopupData()
            {
                Title            = titleTemplate,
                Body             = body,
                ImageId          = _vizaPopupIconPngId.ToString(),
                EntityId         = entityId,
                EntitySchemaName = schemaName
            };
            string serializePopup = popup.Serialize();

            return(string.Format(template, notificationId, serializePopup));
        }
Exemple #27
0
        public override string GetRecordResult(Dictionary <string, string> dictionaryColumnValues)
        {
            var bodyTemplate         = UserConnection.GetLocalizableString("OrderVisaNotificationProvider", "BodyTemplate");
            var titleTemplate        = UserConnection.GetLocalizableString("OrderVisaNotificationProvider", "TitleTemplate");
            var notificationId       = dictionaryColumnValues["Id"];
            var number               = dictionaryColumnValues["Title"];
            var dateTime             = dictionaryColumnValues["Date"];
            var account              = dictionaryColumnValues["Account"];
            var contact              = dictionaryColumnValues["Contact"];
            var entityId             = dictionaryColumnValues["VisaObjectId"];
            var schemaName           = dictionaryColumnValues["SchemaName"];
            var imageId              = dictionaryColumnValues["ImageId"];
            var date                 = GetDate(dateTime);
            var accountContactString = string.Format("{0}, {1}", account, contact);

            if (String.IsNullOrEmpty(account))
            {
                accountContactString = contact;
            }
            if (String.IsNullOrEmpty(contact))
            {
                accountContactString = account;
            }
            var body  = string.Format(bodyTemplate, number, date, accountContactString);
            var popup = new PopupData()
            {
                Title            = titleTemplate,
                Body             = body,
                ImageId          = imageId,
                EntityId         = entityId,
                EntitySchemaName = schemaName
            };
            var serializePopup = popup.Serialize();

            return(string.Format(template, notificationId, serializePopup));
        }
Exemple #28
0
        public ConfigurationServiceResponse DeleteColumn(Guid columnId, Guid sheetId)
        {
            var response  = new ConfigurationServiceResponse();
            var isSuccess = false;
            IEnumerable <ForecastColumn> columns = ColumnRepository.GetColumns(sheetId);
            ForecastColumn column = columns.FirstOrDefault(c => c.Id == columnId);

            if (column != null)
            {
                try {
                    var formulaColumns = FormulaUtilities.GetDependColumns(columns, column);
                    if (!formulaColumns.Any())
                    {
                        var sheet = SheetRepository.GetSheet(sheetId);
                        isSuccess = ColumnRepository.Delete(sheet, columnId);
                    }
                    else
                    {
                        var messageTemplate =
                            UserConnection.GetLocalizableString("ForecastResources", "ColumnUsedInFormula");
                        var message = string.Format(messageTemplate, formulaColumns.First().Name);
                        response.ErrorInfo = new ErrorInfo {
                            Message = message
                        };
                    }
                } catch (Exception ex) {
                    response.Exception = ex;
                }
            }
            else
            {
                response.Exception = new KeyNotFoundException(columnId.ToString());
            }
            response.Success = isSuccess;
            return(response);
        }
 protected virtual string GetRemindingDescription(UserConnection userConnection)
 {
     return(userConnection.GetLocalizableString("DeduplicationActionHelper",
                                                "RemindingDescription"));
 }
 private string GetLocalizableString(string name)
 {
     return(UserConnection.GetLocalizableString(GetType().Name, name) ?? string.Empty);
 }