コード例 #1
0
		public ListCannedTextForUserResponse ListCannedTextForUser(ListCannedTextForUserRequest request)
		{
			var assembler = new CannedTextAssembler();
			var criterias = new List<CannedTextSearchCriteria>();

			var personalCannedTextCriteria = new CannedTextSearchCriteria();
			personalCannedTextCriteria.Staff.EqualTo(this.CurrentUserStaff);
			if (!string.IsNullOrEmpty(request.Name))
				personalCannedTextCriteria.Name.EqualTo(request.Name);
			criterias.Add(personalCannedTextCriteria);

			if (this.CurrentUserStaff.Groups != null && this.CurrentUserStaff.Groups.Count > 0)
			{
				var groupCannedTextCriteria = new CannedTextSearchCriteria();
				groupCannedTextCriteria.StaffGroup.In(this.CurrentUserStaff.Groups);
				if (!string.IsNullOrEmpty(request.Name))
					groupCannedTextCriteria.Name.EqualTo(request.Name);
				criterias.Add(groupCannedTextCriteria);
			}

			var results = PersistenceContext.GetBroker<ICannedTextBroker>().Find(criterias.ToArray(), request.Page);

			var staffCannedText = CollectionUtils.Map<CannedText, CannedTextSummary>(results,
				cannedText => assembler.GetCannedTextSummary(cannedText, this.PersistenceContext));

			return new ListCannedTextForUserResponse(staffCannedText);
		}
コード例 #2
0
        public ListCannedTextForUserResponse ListCannedTextForUser(ListCannedTextForUserRequest request)
        {
            var assembler = new CannedTextAssembler();
            var criterias = new List <CannedTextSearchCriteria>();

            var personalCannedTextCriteria = new CannedTextSearchCriteria();

            personalCannedTextCriteria.Staff.EqualTo(this.CurrentUserStaff);
            if (!string.IsNullOrEmpty(request.Name))
            {
                personalCannedTextCriteria.Name.EqualTo(request.Name);
            }
            criterias.Add(personalCannedTextCriteria);

            if (this.CurrentUserStaff.Groups != null && this.CurrentUserStaff.Groups.Count > 0)
            {
                var groupCannedTextCriteria = new CannedTextSearchCriteria();
                groupCannedTextCriteria.StaffGroup.In(this.CurrentUserStaff.Groups);
                if (!string.IsNullOrEmpty(request.Name))
                {
                    groupCannedTextCriteria.Name.EqualTo(request.Name);
                }
                criterias.Add(groupCannedTextCriteria);
            }

            var results = PersistenceContext.GetBroker <ICannedTextBroker>().Find(criterias.ToArray(), request.Page);

            var staffCannedText = CollectionUtils.Map <CannedText, CannedTextSummary>(results,
                                                                                      cannedText => assembler.GetCannedTextSummary(cannedText, this.PersistenceContext));

            return(new ListCannedTextForUserResponse(staffCannedText));
        }
コード例 #3
0
        public UpdateCannedTextResponse UpdateCannedText(UpdateCannedTextRequest request)
        {
            CheckCannedTextWriteAccess(request.Detail);

            var cannedText = this.PersistenceContext.Load <CannedText>(request.CannedTextRef);

            var assembler = new CannedTextAssembler();

            assembler.UpdateCannedText(cannedText, request.Detail, this.CurrentUserStaff, this.PersistenceContext);

            PersistenceContext.SynchState();
            return(new UpdateCannedTextResponse(assembler.GetCannedTextSummary(cannedText, this.PersistenceContext)));
        }
コード例 #4
0
        public EditCannedTextCategoriesResponse EditCannedTextCategories(EditCannedTextCategoriesRequest request)
        {
            var cannedTexts = CollectionUtils.Map <EntityRef, CannedText>(
                request.CannedTextRefs,
                cannedTextRef => this.PersistenceContext.Load <CannedText>(cannedTextRef));

            foreach (var cannedText in cannedTexts)
            {
                CheckCannedTextWriteAccess(cannedText);
                cannedText.Category = request.Category;
            }

            this.PersistenceContext.SynchState();

            var assembler = new CannedTextAssembler();

            return(new EditCannedTextCategoriesResponse(CollectionUtils.Map <CannedText, CannedTextSummary>(
                                                            cannedTexts,
                                                            cannedText => assembler.GetCannedTextSummary(cannedText, this.PersistenceContext))));
        }
コード例 #5
0
        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)));
        }
コード例 #6
0
        public AddCannedTextResponse AddCannedText(AddCannedTextRequest request)
        {
            CheckCannedTextWriteAccess(request.Detail);

            if (string.IsNullOrEmpty(request.Detail.Name))
            {
                throw new RequestValidationException(SR.ExceptionCannedTextNameRequired);
            }

            if (string.IsNullOrEmpty(request.Detail.Category))
            {
                throw new RequestValidationException(SR.ExceptionCannedTextCategoryRequired);
            }

            var assembler  = new CannedTextAssembler();
            var cannedText = assembler.CreateCannedText(request.Detail, this.CurrentUserStaff, this.PersistenceContext);

            PersistenceContext.Lock(cannedText, DirtyState.New);
            PersistenceContext.SynchState();

            return(new AddCannedTextResponse(assembler.GetCannedTextSummary(cannedText, this.PersistenceContext)));
        }
コード例 #7
0
		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));
		}
コード例 #8
0
		public EditCannedTextCategoriesResponse EditCannedTextCategories(EditCannedTextCategoriesRequest request)
		{
			var cannedTexts = CollectionUtils.Map<EntityRef, CannedText>(
				request.CannedTextRefs,
				cannedTextRef => this.PersistenceContext.Load<CannedText>(cannedTextRef));

			foreach (var cannedText in cannedTexts)
			{
				CheckCannedTextWriteAccess(cannedText);
				cannedText.Category = request.Category;
			}

			this.PersistenceContext.SynchState();

			var assembler = new CannedTextAssembler();
			return new EditCannedTextCategoriesResponse(CollectionUtils.Map<CannedText, CannedTextSummary>(
				cannedTexts,
				cannedText => assembler.GetCannedTextSummary(cannedText, this.PersistenceContext)));
		}
コード例 #9
0
		public UpdateCannedTextResponse UpdateCannedText(UpdateCannedTextRequest request)
		{
			CheckCannedTextWriteAccess(request.Detail);

			var cannedText = this.PersistenceContext.Load<CannedText>(request.CannedTextRef);

			var assembler = new CannedTextAssembler();
			assembler.UpdateCannedText(cannedText, request.Detail, this.CurrentUserStaff, this.PersistenceContext);

			PersistenceContext.SynchState();
			return new UpdateCannedTextResponse(assembler.GetCannedTextSummary(cannedText, this.PersistenceContext));
		}
コード例 #10
0
		public AddCannedTextResponse AddCannedText(AddCannedTextRequest request)
		{
			CheckCannedTextWriteAccess(request.Detail);

			if (string.IsNullOrEmpty(request.Detail.Name))
				throw new RequestValidationException(SR.ExceptionCannedTextNameRequired);

			if (string.IsNullOrEmpty(request.Detail.Category))
				throw new RequestValidationException(SR.ExceptionCannedTextCategoryRequired);

			var assembler = new CannedTextAssembler();
			var cannedText = assembler.CreateCannedText(request.Detail, this.CurrentUserStaff, this.PersistenceContext);

			PersistenceContext.Lock(cannedText, DirtyState.New);
			PersistenceContext.SynchState();

			return new AddCannedTextResponse(assembler.GetCannedTextSummary(cannedText, this.PersistenceContext));
		}