public async Task <bool> Update_MSTR_Drone()
        {
            try {
                using (FlightProcessorConnection cn = new FlightProcessorConnection()) {
                    MSTR_Drone mSTR_Drone = await cn.MSTR_Drone.Where(w => w.DroneId == (int)_DroneFlight.DroneID).FirstOrDefaultAsync();

                    if (mSTR_Drone != null)
                    {
                        mSTR_Drone.LastFlightID    = _DroneFlight.ID;
                        mSTR_Drone.FlightTime      = _DroneFlight.FlightDate;
                        cn.Entry(mSTR_Drone).State = EntityState.Modified;
                        await cn.SaveChangesAsync();
                    }
                }
                return(true);
            } catch (System.Data.Entity.Validation.DbEntityValidationException e) {
                OnDbEntityException?.Invoke(e);
            } catch (Exception ex) {
                OnTaskError?.Invoke(new TaskExceptionInfo {
                    TaskException = ex,
                    TaskName      = "Task - Update_MSTR_Drone()"
                });
            }
            return(false);
        }
Example #2
0
        public MSTR_Drone Create()
        {
            int?DroneSerialNo = db.MSTR_Drone.OrderByDescending(u => u.DroneSerialNo).Select(e => e.DroneSerialNo).FirstOrDefault();

            if (RpasTypeId == 0 && !String.IsNullOrEmpty(OtherRPASType))
            {
                RpasTypeId = CreateType("UAVType", OtherRPASType);
            }
            if (ManufactureID == 0 && !String.IsNullOrEmpty(OtherManufacturer))
            {
                ManufactureID = CreateType("Manufacturer", OtherManufacturer);
            }
            DroneSerialNo = DroneSerialNo + 1;
            if (DroneSerialNo == null)
            {
                DroneSerialNo = 1;
            }
            if (DroneSerialNo < 1000)
            {
                DroneSerialNo += 1000;
            }

            MSTR_Drone Drone = new MSTR_Drone {
                AccountID         = AccountID,
                ManufactureId     = ManufactureID,
                UavTypeId         = RpasTypeId,
                CommissionDate    = CommissionDate,
                DroneDefinitionID = 11,
                IsActive          = true,
                DroneSerialNo     = DroneSerialNo,
                ModelName         = Description,
                CreatedBy         = LoginUserID,
                CreatedOn         = DateTime.Now,
                ModelID           = 0,
                MakeID            = 0,
                RefName           = Description,
                RpasSerialNo      = RPASSerialNumber
            };

            db.MSTR_Drone.Add(Drone);
            db.SaveChanges();

            //Add the drone to user
            M2M_Drone_User UserDrone = new M2M_Drone_User {
                UserID  = LoginUserID,
                DroneID = Drone.DroneId
            };

            db.M2M_Drone_User.Add(UserDrone);
            db.SaveChanges();
            //  db.Entry(Drone).GetDatabaseValues();
            //  MSTR_Drone NewDrone = db.MSTR_Drone.Where(l => l.DroneId == Drone.DroneId).Select(l=>l).FirstOrDefault();
            db.Entry(Drone).Reload();
            return(Drone);
        }
Example #3
0
        public DroneInfo(int DroneID = 0)
        {
            this.DroneID = DroneID;
            _droneinfo   = ctx.MSTR_Drone.Where(w => w.DroneId == DroneID).FirstOrDefault();
            if (_droneinfo != null)
            {
                _DroneRefName = _droneinfo.RefName;
                if (String.IsNullOrWhiteSpace(_DroneRefName))
                {
                    _DroneRefName = _droneinfo.ModelName;
                }
                _Manufacturer = ctx.LUP_Drone
                                .Where(w => w.Type == "Manufacturer" && w.TypeId == _droneinfo.ManufactureId)
                                .Select(s => s.Name)
                                .FirstOrDefault();
                var xUAVType = ctx.LUP_Drone
                               .Where(w => w.Type == "UAVType" && w.TypeId == _droneinfo.UavTypeId)
                               .Select(s => new {
                    Name  = s.Name,
                    Group = s.GroupName
                })
                               .FirstOrDefault();

                if (xUAVType != null)
                {
                    _UAVType  = xUAVType.Name;
                    _UAVGroup = xUAVType.Group;
                }
                _RPASSerialNum = _droneinfo.RpasSerialNo;
                String QRCodePath  = System.Web.Hosting.HostingEnvironment.MapPath("/Upload/QRCode/By100/");
                String QRImagePath = $"{QRCodePath}{DroneName}.png";
                if (System.IO.File.Exists(QRImagePath))
                {
                    _QRCode = $"/Upload/QRCode/By100/{DroneName}.png";
                }
                else
                {
                    _QRCode = $"/Images/QRCode.png";
                }
            }
        }
Example #4
0
        public ActionResult Notify([Bind(Prefix = "ID")] String RequestAction, NotifyParser TheParser)
        {
            String RefFile = Server.MapPath("/Upload/Notify.log");

            using (System.IO.StreamWriter sw = System.IO.File.AppendText(RefFile)) {
                sw.WriteLine($"Date: {DateTime.Now.ToLongDateString()}  {DateTime.Now.ToLongTimeString()}");
                sw.WriteLine(Request.Form);
                sw.WriteLine(Request.QueryString);
                sw.WriteLine("");
            }

            switch (TheParser.call)
            {
            case "publish":
                if (TheParser.name.Substring(0, 5) == "DMAT0")
                {
                    string DID = TheParser.name.Substring(5);
                    TheParser.DroneID = Util.toInt(DID);
                    int        flightID = getFlightID(TheParser.DroneID);
                    MSTR_Drone dr       = ctx.MSTR_Drone.Where(x => x.DroneId == TheParser.DroneID).Select(x => x).FirstOrDefault();
                    if (dr != null)
                    {
                        dr.LastFlightID = flightID;
                        dr.MakeID       = 0;
                        dr.RefName      = dr.DroneName;
                        dr.RpasSerialNo = dr.DroneName;
                        dr.ModelID      = 0;
                    }
                    ctx.SaveChanges();
                }
                else
                {
                    int    uservalid = exLogic.User.StreamKeyValidation(TheParser.key);
                    string DID       = TheParser.name.Substring(5);
                    TheParser.DroneID = Util.toInt(DID);
                    if (uservalid > 0)
                    {
                        int userID = exLogic.User.GetKeyUserId(TheParser.key);
                        if (exLogic.User.hasAccessUser("STREAM.VIDEO", userID))
                        {
                            try
                            {
                                int        flightID = getFlightID(TheParser.DroneID);
                                MSTR_Drone dr       = ctx.MSTR_Drone.Where(x => x.DroneId == TheParser.DroneID).Select(x => x).FirstOrDefault();
                                if (dr != null)
                                {
                                    dr.LastFlightID = flightID;
                                    dr.MakeID       = 0;
                                    dr.RefName      = dr.DroneName;
                                    dr.RpasSerialNo = dr.DroneName;
                                    dr.ModelID      = 0;
                                }
                                ctx.SaveChanges();
                            }
                            catch (Exception Ex)
                            {
                                return(new HttpStatusCodeResult(HttpStatusCode.ExpectationFailed));
                            }
                            return(new HttpStatusCodeResult(HttpStatusCode.OK));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
                        }
                    }
                    else
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
                    }
                }
                break;

            case "record_done":
                TheParser.RequestAction = RequestAction;
                TheParser.Assign(ctx);
                break;
            }


            //NotifyParser TheParser = (NotifyParser)Info;


            return(Json(TheParser, JsonRequestBehavior.AllowGet));
        }