コード例 #1
0
        internal IFacadeUpdateResult <ContactData> SaveContactContactMethod(object parentId, ContactContactMethodDto childDto)
        {
            ArgumentValidator.IsNotNull("parentId", parentId);
            ArgumentValidator.IsNotNull("childDto", childDto);

            FacadeUpdateResult <ContactData> result = new FacadeUpdateResult <ContactData>();
            IContactService projectService          = UnitOfWork.GetService <IContactService>();
            var             projectQuery            = projectService.Retrieve(parentId);

            if (projectQuery.HasResult)
            {
                Contact parent             = projectQuery.ToBo <Contact>();
                ContactContactMethod child = RetrieveOrNewContactContactMethod(parent, childDto.Id);
                if (child != null)
                {
                    child.ContactMethodTypeId = childDto.ContactMethodTypeId;
                    child.ContactMethodValue  = childDto.ContactMethodValue;

                    var saveQuery = projectService.Save(parent);
                    result.Merge(saveQuery);
                    result.AttachResult(parent.RetrieveData <ContactData>());
                }
                else
                {
                    AddError(result.ValidationResult, "ContactContactMethodCannotBeFound");
                }
            }

            return(result);
        }
コード例 #2
0
        protected void ucIDetail_ChildListInstanceRowSaving(object sender, InstanceRowSavingEventArgs e)
        {
            using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
            {
                switch ((InstanceTypes)Enum.Parse(typeof(InstanceTypes), e.InstanceType))
                {
                case InstanceTypes.ContactContactMethod:
                    ContactFacade           facade           = new ContactFacade(uow);
                    ContactContactMethodDto contactMethodDto = e.Instance as ContactContactMethodDto;
                    // Save data
                    IFacadeUpdateResult <ContactData> result = facade.SaveContactContactMethod(CurrentInstance.Id, contactMethodDto);
                    e.IsSuccessful = result.IsSuccessful;
                    if (result.IsSuccessful)
                    {
                        // Refresh
                        ContactDto savedCurrentInstance = result.ToDto(new ContactConverter());
                        CurrentInstance.ContactContactMethods = savedCurrentInstance.ContactContactMethods;
                        // Note: Can't refresh CurrentInstance this way, it will ruin other child list data
                        //ucIDetail.CurrentInstance = savedInstance;
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result.ValidationResult, result.Exception);
                    }
                    break;

                case InstanceTypes.ScheduleEvent:
                    ScheduleEventFacade facade2  = new ScheduleEventFacade(uow);
                    ScheduleEventDto    eventDto = e.Instance as ScheduleEventDto;
                    eventDto.ObjectId     = CurrentInstance.Id;
                    eventDto.ObjectTypeId = (int)EventObjectTypes.Contact;
                    // Save data
                    IFacadeUpdateResult <ScheduleEventData> result2 = facade2.SaveScheduleEvent(eventDto);
                    e.IsSuccessful = result2.IsSuccessful;
                    if (result2.IsSuccessful)
                    {
                        // Refresh data in session
                        CurrentInstance.ScheduleEvents = facade2.RetrieveScheduleEventsByContact(CurrentInstance.Id, new ScheduleEventConverter());
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result2.ValidationResult, result2.Exception);
                    }
                    break;

                case InstanceTypes.Activity:
                    ActivityFacade facade3     = new ActivityFacade(uow);
                    ActivityDto    activityDto = e.Instance as ActivityDto;
                    activityDto.ContactId  = CurrentInstance.Id;
                    activityDto.CustomerId = CurrentInstance.CustomerId;
                    activityDto.EmployeeId = CurrentUserContext.User.MatchId;
                    // Save data
                    IFacadeUpdateResult <ActivityData> result3 = facade3.SaveActivity(activityDto);
                    e.IsSuccessful = result3.IsSuccessful;
                    if (result3.IsSuccessful)
                    {
                        // Refresh data in session
                        CurrentInstance.Activitys = facade3.RetrieveActivitysByContact(CurrentInstance.Id, new ActivityConverter());
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result3.ValidationResult, result3.Exception);
                    }
                    break;

                case InstanceTypes.Transaction:
                    TransactionFacade facade4        = new TransactionFacade(uow);
                    TransactionDto    TransactionDto = e.Instance as TransactionDto;
                    TransactionDto.ContactId  = CurrentInstance.Id;
                    TransactionDto.CustomerId = CurrentInstance.CustomerId;
                    // Save data
                    IFacadeUpdateResult <TransactionData> result4 = facade4.SaveTransaction(TransactionDto);
                    e.IsSuccessful = result4.IsSuccessful;
                    if (result4.IsSuccessful)
                    {
                        // Refresh data in session
                        CurrentInstance.Transactions = facade4.RetrieveTransactionsByContact(CurrentInstance.Id, new TransactionConverter());
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result4.ValidationResult, result4.Exception);
                    }
                    break;
                }
            }
        }
コード例 #3
0
        public IFacadeUpdateResult <ContactData> SaveContactContactMethod(object parentId, ContactContactMethodDto childDto)
        {
            UnitOfWork.BeginTransaction();
            IFacadeUpdateResult <ContactData> result = ContactSystem.SaveContactContactMethod(parentId, childDto);

            if (result.IsSuccessful)
            {
                UnitOfWork.CommitTransaction();
            }
            else
            {
                UnitOfWork.RollbackTransaction();
            }

            return(result);
        }