public static List <ResourceWithValue> GetResource(long?id)
        {
            List <ResourceWithValue> resList = new List <ResourceWithValue>();

            try
            {
                string requestTopic   = ServiceTopics.rmResourceBulk;
                Uri    uri            = new Uri("http://localhost:9092");
                var    requestOptions = new KafkaOptions(uri);
                var    requestRouter  = new BrokerRouter(requestOptions);
                var    consumer       = new Consumer(new ConsumerOptions(requestTopic, requestRouter));
                foreach (var message in consumer.Consume())
                {
                    ResourceWithValue resource = JsonConvert.DeserializeObject <ResourceWithValue>(message.ToString());
                    resList.Add(resource);
                }

                if (id != null && resList != null && resList.Count > 0)
                {
                    return(resList.Where(x => x.Id == id).GroupBy(x => x.Id).Select(x => x.LastOrDefault()).ToList <ResourceWithValue>());
                }
                else if (resList != null && resList.Count > 0)
                {
                    return(resList.GroupBy(x => x.Id).Select(x => x.LastOrDefault()).ToList <ResourceWithValue>());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error reading bulk to kafka server" + Environment.NewLine + ex.Message);
            }
            return(resList);
        }
 public HttpResponseMessage PostResource([FromBody] ResourceWithValue model)
 {
     try
     { ResourceRepository.AddResourceInfo(model);
       KafkaService.PostResource(model);
       return(Request.CreateResponse(System.Net.HttpStatusCode.OK, 202)); }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(System.Net.HttpStatusCode.BadRequest, ex));
     }
 }
Example #3
0
 public HttpResponseMessage PutResource([FromBody] ResourceWithValue model)
 {
     try
     {
         ResourceRepository.UpdateResourceInfo(model);
         return(Request.CreateResponse(System.Net.HttpStatusCode.OK, 202));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(System.Net.HttpStatusCode.NotFound, ex));
     }
 }
        public static bool UpdateResource(ResourceWithValue resModel)
        {
            bool isUpdateSuccess          = false;
            ResourceWithValue responseObj = new ResourceWithValue();

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = client.PutAsJsonAsync($"api/PutResource/", resModel).Result;

                if (response.IsSuccessStatusCode)
                {
                    isUpdateSuccess = true;
                }
            }
            return(isUpdateSuccess);
        }
 public static void PostResource(ResourceWithValue resource)
 {
     try
     {
         JObject jsonObj = JObject.FromObject(resource);
         string  payload = jsonObj.ToString();
         string  topic   = ServiceTopics.rmResourceBulk;
         Message msg     = new Message(payload);
         Uri     uri     = new Uri("http://localhost:9092");
         var     options = new KafkaOptions(uri);
         var     router  = new BrokerRouter(options);
         var     client  = new Producer(router);
         client.SendMessageAsync(topic, new List <Message> {
             msg
         }).Wait();
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error saving bulk to kafka server" + Environment.NewLine + ex.Message);
     }
 }
Example #6
0
        public static void UpdateResourceInfo(ResourceWithValue model)
        {
            using (SqlConnection con = new SqlConnection(conString))
            {
                con.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection  = con;
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "Update [3DX_RM_DB].[dbo].[ResourceTable] set TypeId = " + model.TypeId + ",StatusId = " + model.StatusId +
                                      ",Name = '" + model.Name + "' where Id = " + model.Id + "";
                    cmd.ExecuteNonQuery();

                    cmd.CommandText = "SELECT LocationId FROM [3DX_RM_DB].[dbo].[ResourceTable] where Id = " + model.Id + "";
                    long locationId = (long)cmd.ExecuteScalar();

                    cmd.CommandText = "Update [3DX_RM_DB].[dbo].[LocationTable] set X = " + model.LocationValue.X + ",Y = " + model.LocationValue.Y +
                                      ",Z = " + model.LocationValue.Z + ",Rotation = " + model.LocationValue.Rotation + " where Id = " + locationId + "";
                    cmd.ExecuteNonQuery();
                }
                con.Close();
            }
        }
        public static ResourceWithValue SaveResource(ResourceWithValue resModel)
        {
            ResourceWithValue responseObj = new ResourceWithValue();

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = client.PostAsJsonAsync($"api/PostResource/", resModel).Result;


                if (response.IsSuccessStatusCode)
                {
                    // Get the response
                    var resourceJsonString = response.Content.ReadAsStringAsync().Result;
                    var deserialized       = JsonConvert.DeserializeObject <ResourceResponseModel>(resourceJsonString);
                    responseObj = ModelDataConversion.ResponseModelToDataModel(deserialized);
                }
            }
            return(responseObj);
        }