コード例 #1
0
        public async Task <IActionResult> ConfigurationAdd(string id)
        {
            try
            {
                // Get original state data
                var   form       = HttpContext.Request.Form;
                State entity_new = await db.state.byIdAsync(id);

                // Instance the new configuration entity
                ConfigurationCPT conf = new ConfigurationCPT()
                {
                    cca_mode  = int.Parse(form["cca"]),
                    gamma     = !form["gamma"].Equals("false"),
                    trimester = (Quarter)int.Parse(form["trimester"]),
                    x_mode    = int.Parse(form["x"]),
                    y_mode    = int.Parse(form["y"])
                };
                int           count   = form.Keys.Where(p => p.Contains("left_") && p.Contains("_lat")).Count();
                List <Region> regions = new List <Region>();
                // This cicle add all regions
                for (int i = 1; i <= count; i++)
                {
                    regions.Add(new Region()
                    {
                        left_lower = new Coords()
                        {
                            lat = double.Parse(form["left_lower_" + i.ToString() + "_lat"]),
                            lon = double.Parse(form["left_lower_" + i.ToString() + "_lon"])
                        },
                        rigth_upper = new Coords()
                        {
                            lat = double.Parse(form["right_upper_" + i.ToString() + "_lat"]),
                            lon = double.Parse(form["right_upper_" + i.ToString() + "_lon"])
                        }
                    });
                }
                if (regions.Count() == 0)
                {
                    return(RedirectToAction("Configuration", new { id = id }));
                }

                conf.regions = regions.ToList();
                await db.state.addConfigurationCPTAsync(entity_new, conf);
                await writeEventAsync(id + " conf add: " + conf.ToString(), LogEvent.upd);

                return(RedirectToAction("Configuration", new { id = id }));
            }
            catch (Exception ex)
            {
                await writeExceptionAsync(ex);

                return(RedirectToAction("Configuration", new { id = id }));
            }
        }
コード例 #2
0
        /// <summary>
        /// Method that add a new cpt configuration
        /// </summary>
        /// <param name="entity">State with the new configuration</param>
        /// <param name="conf">New configuration to add to the state</param>
        /// <returns>True if the entity is updated, false otherwise</returns>
        public async Task <bool> addConfigurationCPTAsync(State entity, ConfigurationCPT conf)
        {
            conf.track = new Track()
            {
                enable = true, register = DateTime.Now, updated = DateTime.Now
            };
            List <ConfigurationCPT> allConf = entity.conf.ToList();

            allConf.Add(conf);
            entity.conf = allConf;
            var result = await collection.UpdateOneAsync(Builders <State> .Filter.Eq("_id", entity.id),
                                                         Builders <State> .Update.Set("conf", entity.conf));

            return(result.ModifiedCount > 0);
        }