예제 #1
0
        public async Task <DataProviderModel <string> > CreateObject(CreateDealObject dealObject)
        {
            var queryIdentifier1 = Guid.NewGuid().ToString();
            var query1           = new Query(queryIdentifier1, "UpsertUserObject");

            query1.Parameters.Add(new QueryParameter("in", "ObjectCategory_Id", dealObject.ObjectCategoryId, SqlDbType.Int));
            query1.Parameters.Add(new QueryParameter("in", "ObjectStatus_Id", dealObject.ObjectStatusId, SqlDbType.Int));
            query1.Parameters.Add(new QueryParameter("in", "ObjectName", dealObject.ObjectName, SqlDbType.NVarChar));

            if (!string.IsNullOrEmpty(dealObject.Description))
            {
                query1.Parameters.Add(new QueryParameter("in", "Description", dealObject.Description, SqlDbType.NVarChar));
            }

            var listQuery = new List <Query>
            {
                query1
            };

            var queryIdentifier2 = Guid.NewGuid().ToString();
            var query2           = new Query(queryIdentifier2, "UpsertCheckList");

            query2.ParentQueryGUID.Add(queryIdentifier1);
            query2.Parameters.Add(new QueryParameter("in", "CheckListName", "Лист проверок", SqlDbType.NVarChar));

            listQuery.Add(query2);

            foreach (var dealCheck in dealObject.CheckList)
            {
                var queryIdentifier = Guid.NewGuid().ToString();


                var query = new Query(queryIdentifier, "UpsertCheck");
                query.ParentQueryGUID.Add(queryIdentifier2);
                query.Parameters.Add(new QueryParameter("in", "CheckType_Id", dealCheck.CheckTypeId, SqlDbType.Int));
                query.Parameters.Add(new QueryParameter("in", "Task", dealCheck.Task, SqlDbType.NVarChar));


                listQuery.Add(query);
            }

            var result = await _sessionQueryExecutor.Execute(listQuery).ConfigureAwait(false);

            var model = new DataProviderModel <string>(result.ResultMessage);

            foreach (var q11 in result.Queries)
            {
                if (q11.Name == "UpsertUserObject")
                {
                    if (q11.Parameters.Exists(x => x.Code == "Object_Id"))
                    {
                        model.Model = q11.Parameters.Find(x => x.Code == "Object_Id").Value;
                    }
                }
            }
            return(model);
        }
예제 #2
0
        public async Task <IActionResult> Create(ObjectModifyViewModel model)
        {
            if (ModelState.IsValid)
            {
                var checks             = model.ObjectChecks.Select(c => new DealCheck(((int)c.CheckType).ToString(), c.Description));
                var createObjectModel  = new CreateDealObject(model.CategoryCode, ((int)model.ObjectStatusType).ToString(), model.Name, model.Description, checks);
                var createObjectResult = await _dealObjectProvider.CreateObject(createObjectModel);

                if (createObjectResult.ResultMessage.MessageType != MessageType.Error)
                {
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ShowError(createObjectResult.ResultMessage.Message);
                }
            }

            return(View(model));
        }
예제 #3
0
        /// <summary>
        /// Takes a CreateDealObject  Object and Posts it to Zendesk will return a json String
        /// </summary>
        /// <param name="authorizationString"></param>
        /// <param name="deal"></param>
        /// <returns></returns>
        public string CreateDeal(CreateDealObject deal)
        {
            var client = new RestClient()
            {
                BaseUrl = new Uri("https://api.getbase.com/v2/")
            };
            var request = new RestRequest("https://api.getbase.com/v2/deals", Method.POST)
            {
                RequestFormat = DataFormat.Json
            };

            request.JsonSerializer = new RestSharpJsonNetSerializer();

            request.AddHeader("Accept", "application/json")
            .AddHeader("Content-Type", " application/json")
            .AddHeader("Authorization", authorizationString);
            request.AddJsonBody(deal);

            var reponse = client.Execute(request);

            return(reponse.Content);
        }