Beispiel #1
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection userConnection = entity.UserConnection;



            string newName = entity.GetTypedColumnValue <string>("Name");
            string oldName = entity.GetTypedOldColumnValue <string>("Name");


            EntityValidationMessage evm = new EntityValidationMessage
            {
                Column      = entity.Schema.Columns.FindByName("Name"),
                MassageType = Terrasoft.Common.MessageType.Error,
                Text        = "Error validation from clio"
            };



            entity.ValidationMessages.Add(evm);

            if (newName.Contains("Andrew "))
            {
                e.IsCanceled = true;
            }


            //entity.SetColumnValue("Notes", $"Old:{oldName} - New:{newName}");
        }
Beispiel #2
0
        public override void OnUpdating(object sender, EntityBeforeEventArgs e)
        {
            base.OnUpdating(sender, e);

            _zoomAccounts   = (Entity)sender;
            _userConnection = _zoomAccounts.UserConnection;
            string ApiKey    = _zoomAccounts.GetTypedColumnValue <String>("ApiKey");
            string ApiSecret = _zoomAccounts.GetTypedColumnValue <String>("ApiSecret");

            if (ApiSecret.Length < 17)
            {
                LocalizableString s = GetLocalizableString("ExceptionErrorMessage");
                throw new Exception(s);
            }
            else
            {
                Guid Id = _zoomAccounts.GetTypedColumnValue <Guid>("Id");
                GetAccountUsers(ApiKey, ApiSecret);


                var delete = new Delete(_userConnection)
                             .From("ZoomAccountUser")
                             .Where("ZoomAccountId").IsEqual(Column.Parameter(Id))
                             .Execute();


                InsertZoomUsers(Id);
                if (ErrorCode != 0)
                {
                    e.IsCanceled = true;
                    //throw new Exception(GetLocalizableString("NoNewUsersWereAdded"));
                }
            }
        }
        /// <inheritdoc />
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            var entity = (Entity)sender;

            SetOpportunityWinner(entity);
        }
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            var entity = (Entity)sender;

            ClearStageLookupCache(entity);
        }
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            //Calling CreateSOAPWebRequest method test123
            HttpWebRequest request = CreateSOAPWebRequest();

            string val = "";

            //Geting response from request
            using (WebResponse Serviceres = request.GetResponse())
            {
                using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream()))
                {
                    //reading stream
                    var ServiceResult = rd.ReadToEnd();
                    //var myDetails = JsonConvert.DeserializeObject<MyDetail>(ServiceResult);
                    var myDetails = JObject.Parse(ServiceResult);
                    val = (string)myDetails["rates"]["AED"];
                }
            }
            base.OnSaving(sender, e);
            Entity entity = (Entity)sender;

            entity.SetColumnValue("UsrNotes1", $"Currency Value {val}");
            entity.Save();
        }
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection userConnection = entity.UserConnection;



            string oldValue = entity.GetTypedOldColumnValue <string>("Name");
            string newValue = entity.GetTypedColumnValue <string>("Name");

            if (!newValue.StartsWith("A"))
            {
                newValue = "A" + newValue;
                entity.SetColumnValue("Name", newValue);
                entity.Save();
                string msg = "Name did not start with an A, so I prefixed an A";


                //e.IsCanceled = true;
                //string msg = "Save canceled because name did not start with an A";
                _log.Info(msg);
            }


            string message = $"Changing name from {oldValue} to {newValue}";

            _log.Info(message);
        }
        /// <summary>
        /// Handles entity Saving event.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">The <see cref="T:Terrasoft.Core.Entities.EntityBeforeEventArgs" /> instance containing the
        /// event data.</param>
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            var entity = (Entity)sender;

            FlushDataIsolationHelperCache(entity.UserConnection);
            base.OnSaving(sender, e);
        }
        /// <summary>Hadles entity Deleting event.</summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">The <see cref="T:Terrasoft.Core.Entities.EntityBeforeEventArgs" />
        /// instance containing the event data.</param>
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            var entity = (Entity)sender;

            ClearCache(entity.UserConnection, entity.PrimaryColumnValue);
        }
Beispiel #9
0
        public override void OnInserting(object sender, EntityBeforeEventArgs e)
        {
            base.OnInserting(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;

            SetContactNameAndEmail(entity, userConnection);
        }
Beispiel #10
0
        /// <inheritdoc />
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            var entity = (Entity)sender;

            _userConnection = entity.UserConnection;
            UpdateMainContactColumn(entity);
        }
Beispiel #11
0
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection userConnection = entity.UserConnection;

            e.IsCanceled = true;
        }
Beispiel #12
0
        /// <inheritdoc cref="BaseEntityEventListener.OnUpdating"/>
        public override void OnUpdating(object sender, EntityBeforeEventArgs e)
        {
            base.OnUpdating(sender, e);
            var            productEntity  = (Entity)sender;
            UserConnection userConnection = productEntity.UserConnection;

            HandleEntitiesMerge(userConnection, productEntity, GetBasePrices, FindBasePrice);
            HandleEntitiesMerge(userConnection, productEntity, GetBaseUnits, FindBaseUnit);
        }
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);

            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;

            //TODO your business logic
        }
        /// <summary>
        /// <see cref="BaseEntityEventListener.OnDeleting"/>
        /// </summary>
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;
            var managerFactory = ClassFactory.Get <IListenerManagerFactory>();
            var manager        = managerFactory.GetExchangeListenerManager(userConnection);

            manager.StopListener(entity.PrimaryColumnValue);
        }
Beispiel #15
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;

            // Канал направления ответа
            //SetDirectionChannel(entity);
            SetICLActualResolutionTime(entity);
        }
Beispiel #16
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity activity = (Entity)sender;

            UserConnection = activity.UserConnection;


            bool   IsZoom = activity.GetTypedColumnValue <bool>("CreateZoomMeeting");
            string M      = activity.GetTypedColumnValue <String>("MeetingId");

            if (IsZoom && String.IsNullOrEmpty(M))
            {
                ZoomMeetingApi zm = new ZoomMeetingApi(UserConnection);

                DateTime startDate = activity.GetTypedColumnValue <DateTime>("StartDate");
                TimeSpan offset    = UserConnection.CurrentUser.TimeZone.GetUtcOffset(startDate);

                /*
                 * DateTime Return in Users LocalTime this need to convert to UTC
                 */
                string   zoomStart = startDate.Add(-offset).ToString("yyyy-MM-ddTHH:mm:ssZ");
                DateTime Due       = activity.GetTypedColumnValue <DateTime>("DueDate");
                int      Duration  = (int)Due.Subtract(startDate).TotalMinutes;

                Guid TimeZoneId = activity.GetTypedColumnValue <Guid>("TimeZoneId");

                if (TimeZoneId == Guid.Empty)
                {
                    // _userConnection.CurrentUser.TimeZoneId = "Eastern"
                    Guid g = IdValue("TimeZone", "Code", UserConnection.CurrentUser.TimeZoneId);
                    TimeZoneId = g;
                }

                string ZoomTimeZone = FindZoomTimeZone(TimeZoneId);
                string topic        = activity.GetTypedColumnValue <String>("Title");
                string agenda       = activity.GetTypedColumnValue <String>("Notes");

                MeetingRequest mr = new MeetingRequest(PredifinedMeetings.Certification, topic, agenda, zoomStart, Duration, ZoomTimeZone);
                zm.CreateZoomMeeting(mr);

                /*
                 * Update activity after creating a meeting
                 */
                activity.SetColumnValue("MeetingId", zm.mResponse.Id);
                activity.SetColumnValue("MeetingUUID", zm.mResponse.Uuid);
                activity.SetColumnValue("StartUrl", zm.mResponse.StartUrl);
                activity.SetColumnValue("JoinUrl", zm.mResponse.JoinUrl);
                activity.SetColumnValue("RegistrationUrl", zm.mResponse.RegistrationUrl);
                activity.SetColumnValue("HostId", zm.mResponse.HostId);
                activity.SetColumnValue("AlternativeHosts", zm.mResponse.Settings.AlternativeHosts);
                SendMessageToUi(activity.GetTypedColumnValue <Guid>("Id"), "Meeting Created");
            }
        }
Beispiel #17
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection UserConnection = entity.UserConnection;

            var descOld = entity.GetTypedOldColumnValue <string>("Description");
            var descNew = entity.GetTypedColumnValue <string>("Description");

            _log.Info($"Old Value:{descOld}\tNew Value:{descNew}");
        }
Beispiel #18
0
        /// <summary>
        /// Handles entity Saved event.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">The <see cref="T:Terrasoft.Core.Entities.EntityAfterEventArgs" /> instance containing the
        /// event data.</param>
        public override void OnInserting(object sender, EntityBeforeEventArgs e)
        {
            base.OnInserting(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;
            Dictionary <string, string> requiredSettings = CheckAndLoadRequiredSysSettings(userConnection, new string[] {
                IdentityAddressSettingsName,
                ClientIdSettingsName,
                ClientSecretSettingsName
            });
            var resourceName           = entity.PrimaryColumnValue.ToString();
            var expirationDate         = entity.GetTypedColumnValue <DateTime>("DueDate");
            var endOfExpirationDateDay = expirationDate.Date.AddDays(1).AddTicks(-1);
            var userContactId          = entity.GetTypedColumnValue <Guid>("GrantorId");
            var userId = LoadUserId(userConnection, userContactId);

            CheckGrantor(userConnection, userId);
            EntitySchemaColumn grantorColumn      = entity.Schema.FindSchemaColumnByPath("Grantor");
            EntitySchemaColumn accessClientColumn = entity.Schema.FindSchemaColumnByPath("ExternalAccessClient");

            entity.LoadLookupDisplayValues(new EntitySchemaColumn[] { grantorColumn, accessClientColumn });
            string           granteeClientId      = entity.GetColumnDisplayValue(accessClientColumn);
            var              userName             = entity.GetColumnDisplayValue(grantorColumn);
            var              reason               = entity.GetTypedColumnValue <string>("AccessReason");
            var              reasonMessage        = $"Granted by: {userName}, reason: {reason}";
            ITempAccessProxy tempAccessProxy      = GetTempAccessProxy(requiredSettings);
            string           errorMessage         = null;
            Exception        accessGrantException = null;

            try {
                tempAccessProxy.GrantAccess(resourceName, reasonMessage, endOfExpirationDateDay, userId,
                                            new[] { granteeClientId });
                _log.Info($"Succesfully granted access by userId {userContactId} with reason: {reason}");
            } catch (ApiServerException ex) {
                errorMessage = new LocalizableString(userConnection.ResourceStorage, "ExternalAccessListener",
                                                     "LocalizableStrings.AccessServerErrorMessage.Value").ToString();
                accessGrantException = ex;
            } catch (ApiServerConnectivityException ex) {
                var errorTemplate = new LocalizableString(userConnection.ResourceStorage, "ExternalAccessListener",
                                                          "LocalizableStrings.ConnectivityErrorMessage.Value").ToString();
                errorMessage         = string.Format(errorTemplate, requiredSettings[IdentityAddressSettingsName]);
                accessGrantException = ex;
            } catch (Exception ex) {
                errorMessage         = $"Unexpected error during grant access by userId {userContactId}";
                accessGrantException = ex;
            }
            if (accessGrantException != null)
            {
                e.IsCanceled = true;
                _log.Error($"Error during grant access by userId {userContactId}: {accessGrantException}");
                NotifyClientAboutException(userConnection, accessGrantException);
                throw new GrantExternalAccessException(errorMessage);
            }
        }
        /// <summary>
        /// <see cref="BaseEntityEventListener.OnInserting"/>
        /// </summary>
        public override void OnInserting(object sender, EntityBeforeEventArgs e)
        {
            base.OnInserting(sender, e);
            var entity = (Entity)sender;

            if (IsNumberEmpty(entity))
            {
                var sequenseNumber = GenerateSequenseNumber(entity);
                entity.SetColumnValue("Number", sequenseNumber);
            }
        }
        /// <summary>
        /// Handles entity Saving event.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">The <see cref="T:Terrasoft.Core.Entities.EntityAfterEventArgs" /> instance containing the
        /// event data.</param>
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            Entity prmTransactionEntity = (Entity)sender;
            Guid   partnershipId        = prmTransactionEntity.GetTypedColumnValue <Guid>("PartnershipId");

            if (partnershipId == Guid.Empty)
            {
                TransactionEnricher transactionEnricher = new TransactionEnricher(prmTransactionEntity.UserConnection);
                transactionEnricher.EnrichTransactionWithPartnership(prmTransactionEntity);
            }
            base.OnSaving(sender, e);
        }
        // Обработчик события перед сохранением записи.
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);

            // Экземпляр класса для асинхронного выполнения.
            var asyncExecutor = ClassFactory.Get <IEntityEventAsyncExecutor>();
            // Параметры для асинхронного выполнения.
            var operationArgs = new EntityEventAsyncOperationArgs((Entity)sender, e);

            // Выполнение в асинхронном режиме.
            asyncExecutor.ExecuteAsync <OnSavingAsync>(operationArgs);
        }
Beispiel #22
0
        public override void OnInserting(object sender, EntityBeforeEventArgs e)
        {
            var entity           = (Entity)sender;
            var userConnection   = entity.UserConnection;
            var entitySchema     = entity.Schema;
            var numberGeneration = GenerateCode(userConnection);

            if (string.IsNullOrEmpty(entity.GetTypedColumnValue <string>("UsrCodeString")))
            {
                entity.SetColumnValue("UsrCodeString", numberGeneration);
            }
            base.OnInserting(sender, e);
        }
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            var entity = (Entity)sender;

            if (!(entity is null))
            {
                var userConnection = entity?.UserConnection;
                if (!CheckRulesDbExecutor(userConnection, entity))
                {
                    e.IsCanceled = true;
                }
            }
        }
        /// <summary>
        /// <see cref="BaseEntityEventListener.OnDeleting"/>
        /// </summary>
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;
            var managerFactory = ClassFactory.Get <IListenerManagerFactory>();
            var manager        = managerFactory.GetExchangeListenerManager(userConnection);

            try {
                manager.StopListener(entity.PrimaryColumnValue);
            } catch (Exception ex) {
                SendInfoToClient("SyncMsgLogger", entity, ex);
            }
        }
Beispiel #25
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection userConnection = entity.UserConnection;

            string oldValue = entity.GetTypedOldColumnValue <string>("Name");
            string newValue = entity.GetTypedColumnValue <string>("Name");

            if (oldValue != newValue)
            {
                //e.IsCanceled = true;
            }
        }
Beispiel #26
0
        /// <summary>
        /// Handles entity Saving event.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">The <see cref="T:Terrasoft.Core.Entities.EntityBeforeEventArgs" /> instance containing the event data.</param>
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            var entity         = (Entity)sender;
            var userConnection = entity.UserConnection;

            if (!userConnection.GetIsFeatureEnabled("CalcFormulaOnSave"))
            {
                return;
            }
            var columnType = entity.GetTypedColumnValue <Guid>("TypeId");

            _isSettingsChanged = IsSettingsChanged(entity);
            _isFormulaColumn   = columnType.Equals(ForecastConsts.FormulaColumnTypeId);
        }
Beispiel #27
0
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
            base.OnDeleting(sender, e);
            Entity activity = (Entity)sender;

            UserConnection = activity.UserConnection;

            bool IsZoom = activity.GetTypedColumnValue <bool>("CreateZoomMeeting");

            if (IsZoom)
            {
                ZoomMeetingApi zm        = new ZoomMeetingApi(UserConnection);
                string         MeetingId = activity.GetTypedColumnValue <String>("MeetingId");
                zm.DeleteZoomMeeting(MeetingId);
            }
        }
Beispiel #28
0
        public override void OnSaving(object sender, EntityBeforeEventArgs e)
        {
            base.OnSaving(sender, e);
            Entity         entity         = (Entity)sender;
            UserConnection userConnection = entity.UserConnection;
            var            oldName        = entity.GetTypedColumnValue <string>("Name");



            if (oldName.Contains("Kirill"))
            {
                e.IsCanceled = true;
                MsgChannelUtilities.PostMessage(userConnection, this.GetType().FullName, "I am cancelling this, because ....");
            }

            entity.SetColumnValue("Name", $"{oldName} - test listener");
        }
Beispiel #29
0
        public override void OnUpdating(object sender, EntityBeforeEventArgs e)
        {
            base.OnUpdating(sender, e);
            ZoomAccountUser = (Entity)sender;
            UserConnection  = ZoomAccountUser.UserConnection;

            string Email     = ZoomAccountUser.GetTypedColumnValue <string>("Email");
            Guid   ContactId = ColumnIdValue("ContactCommunication", "ContactId", "Number", Email);

            if (ContactId != Guid.Empty)
            {
                ZoomAccountUser.SetColumnValue("ContactId", ContactId);
                ZoomAccountUser.Save(false);
            }
            SendMessageToUi(
                ZoomAccountUser.GetTypedColumnValue <Guid>("ContactId"),
                "OnUpdating",
                (ZoomAccountUser.GetTypedColumnValue <Guid>("ContactId") == Guid.Empty) ? false : true);
        }
Beispiel #30
0
		public override void OnSaving(object sender, EntityBeforeEventArgs e)
		{
			base.OnSaving(sender, e);
			Contact contact = (Contact)sender;
			List<string> interestingColumns = new List<string>() { nameof(contact.Name), nameof(contact.Email) };
			UserConnection userConnection = contact.UserConnection;
			
			string oldName = contact.GetTypedOldColumnValue<string>(nameof(contact.Name));
			foreach(var item in contact.GetChangedColumnValues())
			{
				if(interestingColumns.Contains(item.Name))
				{
					if (oldName.Contains("Random"))
					{
						e.IsCanceled = true;
					}
				}
				
			}
		}