예제 #1
0
        public void UpdateEntityState(IEnumerable <EditableGridModel> records)
        {
            ExecuteMultipleRequest requestWithoutResults = XrmMultipleRequestHelper.CreateRequest();


            foreach (EditableGridModel item in records)
            {
                SetStateRequest request = new SetStateRequest
                {
                    EntityMoniker = new EntityReference(item.Entity, item.Id),
                    // Sets the record to disabled.
                    State = new OptionSetValue(0),
                    // Required by request but always valued at -1 in this context.
                    Status = new OptionSetValue(-1)
                };

                if (item.Records.FirstOrDefault().Value == "disable")
                {
                    request.State = new OptionSetValue(1);
                }


                request.Status = new OptionSetValue(-1);

                _service.ServiceContext.Execute(request);
            }
        }
예제 #2
0
        public void DeleteRecords(IEnumerable <EditableGridModel> records)
        {
            //foreach (var item in records)
            //{
            //     _service.ServiceContext.Delete(item.Entity, item.Id);
            //}

            ExecuteMultipleRequest requestWithoutResults = XrmMultipleRequestHelper.CreateRequest(false, true);



            foreach (var item in records)
            {
                DeleteRequest deleteRequest = new DeleteRequest();
                deleteRequest.Target = new EntityReference(item.Entity, item.Id);
                requestWithoutResults.Requests.Add(deleteRequest);
            }

            try
            {
                ExecuteMultipleResponse responseWithResults = (ExecuteMultipleResponse)_service.ServiceContext.Execute(requestWithoutResults);
                foreach (var responseItem in responseWithResults.Responses)
                {
                    // A valid response.
                    //if (responseItem.Response != null)
                    //    throw new Exception(responseItem.Response.ToString());

                    // An error has occurred.
                    if (responseItem.Fault != null)
                    {
                        throw new Exception(responseItem.Fault.Message);
                    }
                }
            }

            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }