public IActionResult EditObstacle(int idC, string str, int back, int idO = -1)
        {
            var data = new EditObstacle();

            data.id   = idC;
            data.str  = str;
            data.Back = back;
            data.Save = 1;
            if (idO == -1)
            {
                data.Obstacle                       = new Obstacle();
                data.Obstacle.Name                  = "";
                data.Obstacle.IsDeleted             = 1;
                data.Obstacle.AdditionalDescription = "";
                data.Obstacle.ConditionsOvercoming  = "";
                data.Obstacle.CriticalTime          = "00:00:00";
                data.Obstacle.OptTime               = "00:00:00";
                data.Obstacle.Height                = 0;
                data.Obstacle.Length                = 0;
                data.Obstacle.EquipmentObstacle     = "";
                data.Obstacle.EquipmentStart        = "";
                data.Obstacle.EquipmentTarget       = "";
                data.Obstacle.MovementFirst         = "";

                _context.Obstacles.Add(data.Obstacle);
                _context.SaveChanges();
            }
            else
            {
                data.Obstacle                       = _context.Obstacles.FirstOrDefault(a => a.ObstacleId == idO);
                data.Obstacle.OptTime               = data.Obstacle.OptTime.Trim();
                data.Obstacle.CriticalTime          = data.Obstacle.CriticalTime.Trim();
                data.Obstacle.Name                  = data.Obstacle.Name.Trim();
                data.Obstacle.AdditionalDescription = data.Obstacle.AdditionalDescription == null?"": data.Obstacle.AdditionalDescription.Trim();
                data.Obstacle.EquipmentTarget       = data.Obstacle.EquipmentTarget == null ? "": data.Obstacle.EquipmentTarget.Trim();
                data.Obstacle.EquipmentStart        = data.Obstacle.EquipmentStart == null?"": data.Obstacle.EquipmentStart.Trim();
                data.Obstacle.EquipmentObstacle     = data.Obstacle.EquipmentObstacle == null?"": data.Obstacle.EquipmentObstacle.Trim();
                data.Obstacle.MovementFirst         = data.Obstacle.MovementFirst == null?"": data.Obstacle.MovementFirst.Trim();
                data.Obstacle.ConditionsOvercoming  = data.Obstacle.ConditionsOvercoming == null?"": data.Obstacle.ConditionsOvercoming.Trim();
            }
            return(View(data));
        }
        public IActionResult EditObstacle(EditObstacle data)
        {
            data.Obstacle.AdditionalDescription = data.Obstacle.AdditionalDescription == null ? "" : data.Obstacle.AdditionalDescription.Trim();
            data.Obstacle.EquipmentTarget       = data.Obstacle.EquipmentTarget == null ? "" : data.Obstacle.EquipmentTarget.Trim();
            data.Obstacle.EquipmentStart        = data.Obstacle.EquipmentStart == null ? "" : data.Obstacle.EquipmentStart.Trim();
            data.Obstacle.EquipmentObstacle     = data.Obstacle.EquipmentObstacle == null ? "" : data.Obstacle.EquipmentObstacle.Trim();
            data.Obstacle.MovementFirst         = data.Obstacle.MovementFirst == null ? "" : data.Obstacle.MovementFirst.Trim();
            data.Obstacle.ConditionsOvercoming  = data.Obstacle.ConditionsOvercoming == null ? "" : data.Obstacle.ConditionsOvercoming.Trim();
            data.Obstacle.OptTime      = data.Obstacle.OptTime == null?"": data.Obstacle.OptTime.Trim();
            data.Obstacle.CriticalTime = data.Obstacle.CriticalTime == null?"": data.Obstacle.CriticalTime.Trim();

            var xxx = _context.ObstacleCompetitions.FirstOrDefault(a => a.ObstacleId == data.Obstacle.ObstacleId);

            if (data.Save == 1)
            {
                int change = 0;
                var temp   = _context.Obstacles.FirstOrDefault(a => a.ObstacleId == data.Obstacle.ObstacleId);

                if (!(temp.Name.Trim().Equals(data.Obstacle.Name) &&
                      temp.AdditionalDescription.Trim().Equals(data.Obstacle.AdditionalDescription) &&
                      temp.ConditionsOvercoming.Trim().Equals(data.Obstacle.ConditionsOvercoming) &&
                      temp.Length == data.Obstacle.Length &&
                      temp.Height == data.Obstacle.Height &&
                      temp.CriticalTime.Trim().Equals(data.Obstacle.CriticalTime) &&
                      temp.OptTime.Trim().Equals(data.Obstacle.OptTime) &&
                      temp.EquipmentObstacle.Trim().Equals(data.Obstacle.EquipmentObstacle) &&
                      temp.EquipmentStart.Trim().Equals(data.Obstacle.EquipmentStart) &&
                      temp.EquipmentTarget.Trim().Equals(data.Obstacle.EquipmentTarget) &&
                      temp.MovementFirst.Trim().Equals(data.Obstacle.MovementFirst)))
                {
                    change = 1;
                }
                if (xxx != null && change != 0)
                {
                    temp = new Obstacle();
                    _context.Obstacles.Add(temp);
                }


                temp.Name = data.Obstacle.Name;
                temp.AdditionalDescription = data.Obstacle.AdditionalDescription;
                temp.ConditionsOvercoming  = data.Obstacle.ConditionsOvercoming;
                temp.Length            = data.Obstacle.Length;
                temp.Height            = data.Obstacle.Height;
                temp.CriticalTime      = data.Obstacle.CriticalTime;
                temp.OptTime           = data.Obstacle.OptTime;
                temp.EquipmentObstacle = data.Obstacle.EquipmentObstacle;
                temp.EquipmentStart    = data.Obstacle.EquipmentStart;
                temp.EquipmentTarget   = data.Obstacle.EquipmentTarget;
                temp.MovementFirst     = data.Obstacle.MovementFirst;
                temp.IsDeleted         = 0;
                _context.SaveChanges();
                if (xxx != null && change != 0)
                {
                    var t = _context.ObstacleCompetitions.FirstOrDefault(a => a.ObstacleId == data.Obstacle.ObstacleId && a.CompetitionId == data.id);
                    t.ObstacleId = temp.ObstacleId;
                    _context.SaveChanges();
                }

                if (data.Back == 1)
                {
                    return(RedirectToAction("CompetitionAdmin", "Main", new { str = data.str, id = data.id }));
                }
                else
                {
                    return(RedirectToAction("AddObstacle", "Main", new { str = data.str, id = data.id }));
                }
            }
            else
            {
                if (data.Back == 1)
                {
                    return(RedirectToAction("CompetitionAdmin", "Main", new { str = data.str, id = data.id }));
                }
                else
                {
                    return(RedirectToAction("AddObstacle", "Main", new { str = data.str, id = data.id }));
                }
            }
        }