Пример #1
0
        public async Task SaveAntennaScan(AntennaScan entity)
        {
            ISQLQuery query = _session.CreateSQLQuery("INSERT INTO AntennaScan VALUES(:antenna_id, :scan_id)");

            query.SetParameter("antenna_id", entity.antenna_id);
            query.SetParameter("scan_id", entity.scan_id);
            query.ExecuteUpdate();
        }
Пример #2
0
        public async Task DeleteAntennaScan(AntennaScan entity)
        {
            ISQLQuery query = _session.CreateSQLQuery("DELETE FROM AntennaScan WHERE antenna_id = :antenna_id AND scan_id = :scan_id");

            query.SetParameter("antenna_id", entity.antenna_id);
            query.SetParameter("scan_id", entity.scan_id);
            query.ExecuteUpdate();
        }
Пример #3
0
        public async Task <IActionResult> NewAntennaScanParamAsync(Antenna.AntennaList ascans)
        {
            //get session id (we will use it when updating data and handling errors)
            sessionID_s = HttpContext.Session.GetString("Session");
            sessionID   = Guid.Parse(sessionID_s);
            Data current = new Data();

            Program.data.TryGetValue(sessionID, out current);

            //control if current did not came
            if (current.Receiver == null) //means current == null
            {
                ViewData["message"] = "Error occured please restart the program";
                return(View(ascans));
            }

            //refresh the list to specify selected antennas
            current.ListOfAntennas = ascans.antennas;
            try
            {
                _session.BeginTransaction();

                for (int i = 0; i < ascans.antennas.Count; i++)
                {
                    Antenna antenna = ascans.antennas[i];

                    AntennaScan ascan = new AntennaScan(antenna.ID, current.LastMode.LastSubmode.Scan.ID);
                    if (antenna.IsChecked)
                    {
                        Guid temp = Guid.Empty;
                        temp = await _session.SelectAntennaScan(current.ListOfAntennas[i].ID, current.LastMode.LastSubmode.Scan.ID);

                        if (temp.Equals(Guid.Empty))
                        {
                            await _session.SaveAntennaScan(ascan);
                        }
                    }
                    else
                    {
                        Guid temp = Guid.Empty;
                        temp = await _session.SelectAntennaScan(current.ListOfAntennas[i].ID, current.LastMode.LastSubmode.Scan.ID);

                        if (!temp.Equals(Guid.Empty))
                        {
                            await _session.DeleteAntennaScan(ascan);
                        }
                    }
                }
                await _session.Commit();

                if (current.Receiver != null) //means current != null
                {
                    current.message = "New Relationship between antennas and scan added";
                }
            }
            catch (Exception e)
            {
                // log exception here
                current.message = e.Message.ToString() + " Error";
                await _session.Rollback();
            }
            finally
            {
                _session.CloseTransaction();
            }
            return(RedirectToAction("Preliminary", "AntennaScan"));
        }