public LoadCannedTextForEditResponse LoadCannedTextForEdit(LoadCannedTextForEditRequest request)
        {
            var        broker = PersistenceContext.GetBroker <ICannedTextBroker>();
            CannedText cannedText;

            if (request.CannedTextRef != null)
            {
                cannedText = broker.Load(request.CannedTextRef);
            }
            else
            {
                var criteria = new CannedTextSearchCriteria();

                if (!string.IsNullOrEmpty(request.Name))
                {
                    criteria.Name.EqualTo(request.Name);
                }

                if (!string.IsNullOrEmpty(request.Category))
                {
                    criteria.Category.EqualTo(request.Category);
                }

                if (!string.IsNullOrEmpty(request.StaffId))
                {
                    criteria.Staff.Id.EqualTo(request.StaffId);
                }

                if (!string.IsNullOrEmpty(request.StaffGroupName))
                {
                    criteria.StaffGroup.Name.EqualTo(request.StaffGroupName);
                }

                cannedText = broker.FindOne(criteria);
            }

            var assembler = new CannedTextAssembler();

            return(new LoadCannedTextForEditResponse(assembler.GetCannedTextDetail(cannedText, this.PersistenceContext)));
        }
		public LoadCannedTextForEditResponse LoadCannedTextForEdit(LoadCannedTextForEditRequest request)
		{
			var broker = PersistenceContext.GetBroker<ICannedTextBroker>();
			CannedText cannedText;

			if (request.CannedTextRef != null)
			{
				cannedText = broker.Load(request.CannedTextRef);
			}
			else
			{
				var criteria = new CannedTextSearchCriteria();

				if (!string.IsNullOrEmpty(request.Name))
					criteria.Name.EqualTo(request.Name);

				if (!string.IsNullOrEmpty(request.Category))
					criteria.Category.EqualTo(request.Category);

				if (!string.IsNullOrEmpty(request.StaffId))
					criteria.Staff.Id.EqualTo(request.StaffId);

				if (!string.IsNullOrEmpty(request.StaffGroupName))
					criteria.StaffGroup.Name.EqualTo(request.StaffGroupName);

				cannedText = broker.FindOne(criteria);
			}

			var assembler = new CannedTextAssembler();
			return new LoadCannedTextForEditResponse(assembler.GetCannedTextDetail(cannedText, this.PersistenceContext));
		}