コード例 #1
0
        public virtual void CreateReminding()
        {
            if (ForecastId == Guid.Empty || CurrentUserContactId == Guid.Empty)
            {
                return;
            }
            string forecastName = string.Empty;
            var    esq          = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Forecast");
            string columnName   = esq.AddColumn("Name").Name;
            IEntitySchemaQueryFilterItem filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal,
                                                                                 esq.RootSchema.GetPrimaryColumnName(), ForecastId);

            esq.Filters.Add(filter);
            EntityCollection entities = esq.GetEntityCollection(UserConnection);

            if (entities.Count > 0)
            {
                forecastName = entities[0].GetTypedColumnValue <string>(columnName);
            }
            Reminding reminding = new Reminding(UserConnection);

            reminding.SetDefColumnValues();
            reminding.AuthorId          = UserConnection.CurrentUser.ContactId;
            reminding.SourceId          = RemindingConsts.RemindingSourceAuthorId;
            reminding.ContactId         = CurrentUserContactId;
            reminding.RemindTime        = DateTime.UtcNow;
            reminding.Description       = string.Format(RemindingDescription, forecastName);
            reminding.SubjectCaption    = RemindingSubjectCaption;
            reminding.SubjectId         = ForecastId;
            reminding.SysEntitySchemaId = ForecastConsts.ForecastEntitySchemaUId;
            reminding.Save();
        }
        /// <inheritdoc cref="IDeduplicationRemindingRepository.CreateReminding"/>>
        public void CreateReminding(UserConnection userConnection, string remindingDesription,
                                    string remindingSubject, string schemaName)
        {
            Reminding remindingEntity = new Reminding(userConnection);
            var       manager         = userConnection.GetSchemaManager("EntitySchemaManager");
            var       targetSchema    = manager.FindItemByName(schemaName);

            manager = userConnection.GetSchemaManager("ClientUnitSchemaManager");
            var      loaderSchema  = manager.FindItemByName("DuplicatesSearchNotificationTargetLoader");
            var      subject       = schemaName;
            DateTime userDateTime  = userConnection.CurrentUser.GetCurrentDateTime();
            Guid     userContactId = userConnection.CurrentUser.ContactId;
            var      condition     = new Dictionary <string, object> {
                {
                    "Author", userContactId
                }, {
                    "Contact", userContactId
                }, {
                    "Source", RemindingConsts.RemindingSourceAuthorId
                }, {
                    "SubjectCaption", subject
                }, {
                    "SysEntitySchema", targetSchema.UId
                },
            };
            string description = remindingDesription;
            string hash        = GetRemindingHash(condition);

            subject = remindingSubject;
            if (!remindingEntity.FetchFromDB(new Dictionary <string, object> {
                { "Hash", hash }
            }, false))
            {
                remindingEntity.SetDefColumnValues();
            }
            subject = TruncateString(subject, SubjectCaptionTypeStringLength);
            remindingEntity.SetColumnValue("ModifiedOn", userDateTime);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("NotificationTypeId", RemindingConsts.NotificationTypeNotificationId);
            remindingEntity.SetColumnValue("Hash", hash);
            remindingEntity.SetColumnValue("SysEntitySchemaId", targetSchema.UId);
            remindingEntity.SetColumnValue("LoaderId", loaderSchema.UId);
            remindingEntity.SetColumnValue("IsRead", false);
            remindingEntity.Save();
        }
コード例 #3
0
        /// <summary>
        /// ####### ########### ############.
        /// </summary>
        /// <param name="userConnection">######### ################# ###########.</param>
        /// <param name="entity">######, ## ######## ##### ####### ###########.</param>
        /// <param name="description">##### ###########.</param>
        /// <param name="schemaCaption">######### ######### ###### ###########.</param>
        public static void CreateReminding(
            UserConnection userConnection, Entity entity, string description, string schemaCaption = "")
        {
            Reminding remindingEntity = new Reminding(userConnection);
            string    subject         = entity.PrimaryDisplayColumnValue;
            DateTime  userDateTime    = userConnection.CurrentUser.GetCurrentDateTime();
            Guid      userContactId   = userConnection.CurrentUser.ContactId;
            var       condition       = new Dictionary <string, object> {
                {
                    "Author", userContactId
                }, {
                    "Contact", userContactId
                }, {
                    "Source", RemindingConsts.RemindingSourceAuthorId
                }, {
                    "SubjectCaption", subject
                }, {
                    "SysEntitySchema", entity.Schema.UId
                },
            };
            string hash = GetRemindingHash(condition);

            if (!string.IsNullOrEmpty(description))
            {
                subject = string.Format("{0} \"{1}\" {2}",
                                        string.IsNullOrEmpty(schemaCaption) ? entity.Schema.Caption.Value : schemaCaption,
                                        entity.PrimaryDisplayColumnValue,
                                        description);
            }
            if (!remindingEntity.FetchFromDB(new Dictionary <string, object> {
                { "Hash", hash }
            }, false))
            {
                remindingEntity.SetDefColumnValues();
            }
            description = TruncateString(subject, DescriptionTypeStringLength);
            subject     = TruncateString(subject, SubjectCaptionTypeStringLength);
            remindingEntity.SetColumnValue("ModifiedOn", userDateTime);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("Hash", hash);
            remindingEntity.SetColumnValue("SysEntitySchemaId", entity.Schema.UId);
            remindingEntity.SetColumnValue("SubjectId", entity.PrimaryColumnValue);
            remindingEntity.Save();
        }
コード例 #4
0
        public static void CreateReminding(UserConnection userConnection, string description, Guid sysEntitySchemaId)
        {
            DateTime  userDateTime    = userConnection.CurrentUser.GetCurrentDateTime();
            Guid      userContactId   = userConnection.CurrentUser.ContactId;
            Reminding remindingEntity = new Reminding(userConnection);

            remindingEntity.SetDefColumnValues();
            string subject = TruncateString(description, SubjectCaptionTypeStringLength);

            description = TruncateString(description, DescriptionTypeStringLength);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("SysEntitySchemaId", sysEntitySchemaId);
            remindingEntity.SetColumnValue("SubjectId", Guid.Empty);
            remindingEntity.Save();
        }
コード例 #5
0
        public void RemindingFill(int id)
        {
            ClierRemindings(id);

            //Reminders of Field Culture.
            var fieldtypes = new List<string>
            {
                "Bread",
                "Leguminous",
                "Tuber",
                "Spicy",
                "Melon",
                "Olive",
                "Silage",
                "Fodder",
                "Fodder",
                "Forage"
            };
            var newremind = new Reminding();
            var user = _usersRepository.Get().FirstOrDefault(i => i.Id == id);
            foreach (var profit in fieldtypes.Select(type => _growingFieldProfitsRepository.Get().Where(i => i.User.Id == id &&
            i.GrowingType.Name == type).ToList()).SelectMany(fieldprofits => fieldprofits.Where(profit => profit.ExpirationDate != null).
            Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind)))
            {
                newremind.Name = profit.Name;
                newremind.ExpirationDate = profit.ExpirationDate;
                newremind.User = user;
                if (!IsReminding(profit.Name, profit.ExpirationDate)) _remindingRepository.Add(newremind);
            }

            //Reminders of Fruit Culture.
            var fruittypes = new List<string>
            {
                "Bergamot",
                "Kepel",
                "Finik",
                "Crataegus",
                "Tern",
                "Strawberry",
            };
            foreach (var profit in fruittypes.Select(type => _growingFruitProfitsRepository.Get().Where(i => i.User.Id == id &&
            i.GrowingType.Name == type).ToList()).SelectMany(fruitprofits => fruitprofits.Where(profit => profit.ExpirationDate != null).
            Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind)))
            {
                newremind.Name = profit.Name;
                newremind.ExpirationDate = profit.ExpirationDate;
                newremind.User = user;
                if (!IsReminding(profit.Name, profit.ExpirationDate)) _remindingRepository.Add(newremind);
            }

            //Reminders of Breeding.
            var breendingtypes = new List<string>
            {
                "Сamel",
                "Goat",
                "Horse",
                "Pony",
                "RabbitSkin",
                "RabbitMeat",
                "Sheep",
                "HenMeat",
                "HenEgg",
                "Goose",
                "Quail",
                "Bee",
                "TeplovyeFish",
                "СoldwaterFish",
                "Swine",
                "Cattlemeat",
                "Cattlemilk",
                "Cattlemixed",
                "Pinscherdog",
                "Houndsdog",
                "Сopsdog",
                "Borzoidog"
            };
            foreach (var remind in breendingtypes.Select(type => _breedingRemindingRepository.Get().Where(i => i.User.Id == id &&
            i.BreedingType.Name == type).ToList()).SelectMany(breedingprofits => breedingprofits.Where(remind => remind.RemindDate != null).
            Where(remind => DateTime.Now >= remind.RemindDate && DateTime.Now <= remind.RemindDate.Value.AddDays(Convert.ToInt32(remind.RemindDays)))))
            {
                newremind.Name = remind.Text;
                newremind.ExpirationDate = remind.RemindDate;
                newremind.User = user;
                if (!IsReminding(remind.Text, remind.RemindDate)) _remindingRepository.Add(newremind);
            }

        }
コード例 #6
0
        public void RemindingFill(int id)
        {
            ClierRemindings(id);

            //Reminders of Field Culture.
            var fieldtypes = new List <string>
            {
                "Bread",
                "Leguminous",
                "Tuber",
                "Spicy",
                "Melon",
                "Olive",
                "Silage",
                "Fodder",
                "Fodder",
                "Forage"
            };
            var newremind = new Reminding();
            var user      = _usersRepository.Get().FirstOrDefault(i => i.Id == id);

            foreach (var profit in fieldtypes.Select(type => _growingFieldProfitsRepository.Get().Where(i => i.User.Id == id &&
                                                                                                        i.GrowingType.Name == type).ToList()).SelectMany(fieldprofits => fieldprofits.Where(profit => profit.ExpirationDate != null).
                                                                                                                                                         Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind)))
            {
                newremind.Name           = profit.Name;
                newremind.ExpirationDate = profit.ExpirationDate;
                newremind.User           = user;
                if (!IsReminding(profit.Name, profit.ExpirationDate))
                {
                    _remindingRepository.Add(newremind);
                }
            }

            //Reminders of Fruit Culture.
            var fruittypes = new List <string>
            {
                "Bergamot",
                "Kepel",
                "Finik",
                "Crataegus",
                "Tern",
                "Strawberry",
            };

            foreach (var profit in fruittypes.Select(type => _growingFruitProfitsRepository.Get().Where(i => i.User.Id == id &&
                                                                                                        i.GrowingType.Name == type).ToList()).SelectMany(fruitprofits => fruitprofits.Where(profit => profit.ExpirationDate != null).
                                                                                                                                                         Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind)))
            {
                newremind.Name           = profit.Name;
                newremind.ExpirationDate = profit.ExpirationDate;
                newremind.User           = user;
                if (!IsReminding(profit.Name, profit.ExpirationDate))
                {
                    _remindingRepository.Add(newremind);
                }
            }

            //Reminders of Breeding.
            var breendingtypes = new List <string>
            {
                "Сamel",
                "Goat",
                "Horse",
                "Pony",
                "RabbitSkin",
                "RabbitMeat",
                "Sheep",
                "HenMeat",
                "HenEgg",
                "Goose",
                "Quail",
                "Bee",
                "TeplovyeFish",
                "СoldwaterFish",
                "Swine",
                "Cattlemeat",
                "Cattlemilk",
                "Cattlemixed",
                "Pinscherdog",
                "Houndsdog",
                "Сopsdog",
                "Borzoidog"
            };

            foreach (var remind in breendingtypes.Select(type => _breedingRemindingRepository.Get().Where(i => i.User.Id == id &&
                                                                                                          i.BreedingType.Name == type).ToList()).SelectMany(breedingprofits => breedingprofits.Where(remind => remind.RemindDate != null).
                                                                                                                                                            Where(remind => DateTime.Now >= remind.RemindDate && DateTime.Now <= remind.RemindDate.Value.AddDays(Convert.ToInt32(remind.RemindDays)))))
            {
                newremind.Name           = remind.Text;
                newremind.ExpirationDate = remind.RemindDate;
                newremind.User           = user;
                if (!IsReminding(remind.Text, remind.RemindDate))
                {
                    _remindingRepository.Add(newremind);
                }
            }
        }