//all functions here require Ahwal Permssion
        public Operationlogs Add_HandHeldr(Users u, Handhelds h) //this transaction requires User_Role_Maintenance Permisson on this AhwalID
        {
            try
            {
                //first we have to check if this Users is authorized to perform this transaction
                //if (!_user.isAuthorized(u.Userid, h.Ahwalid, Handler_User.User_Role_Maintenance))
                //{
                //    Operationlogs ol_failed = new Operationlogs();
                //    ol_failed.Userid = u.Userid;
                //    ol_failed.Operationid  = Handler_Operations.Opeartion_AddHandHeld;
                //    ol_failed.Statusid = Handler_Operations.Opeartion_Status_UnAuthorized;
                //    ol_failed.Text = "المستخدم لايملك صلاحية هذه العمليه";
                //    _oper.Add_New_Operation_Log(ol_failed);
                //    return ol_failed;
                //}
                //next we need to search if there is a Handhelds with same serial
                Handhelds HandHeld_exists = _context.Handhelds.FirstOrDefault(e => e.Serial.Equals(h.Serial));
                if (HandHeld_exists != null)
                {
                    Operationlogs ol_failed = new Operationlogs();
                    ol_failed.Userid      = u.Userid;
                    ol_failed.Operationid = Handler_Operations.Opeartion_AddHandHeld;
                    ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                    ol_failed.Text        = "يوجد لاسلكي بنفس رقم : " + h.Serial;
                    _oper.Add_New_Operation_Log(ol_failed);
                    return(ol_failed);
                }
                h.Barcode = "HAN" + h.Serial;
                //  var handhelds = _context.Set<Handhelds>();
                //  handhelds.Add(h);

                _context.Handhelds.Add(h);
                _context.SaveChanges();
            }

            catch (Exception ex)
            {
                Operationlogs ol_failed = new Operationlogs();
                ol_failed.Userid      = u.Userid;
                ol_failed.Operationid = Handler_Operations.Opeartion_AddHandHeld;
                ol_failed.Statusid    = Handler_Operations.Opeartion_Status_UnKnownError;
                ol_failed.Text        = ex.Message;
                _oper.Add_New_Operation_Log(ol_failed);
                return(ol_failed);
            }
            Operationlogs ol = new Operationlogs();

            ol.Userid      = u.Userid;
            ol.Operationid = Handler_Operations.Opeartion_AddHandHeld;
            ol.Statusid    = Handler_Operations.Opeartion_Status_Success;
            ol.Text        = "تم اضافة لاسلكي: " + h.Serial;
            _oper.Add_New_Operation_Log(ol);
            return(ol);
        }
        public ActionResult PostHandhelds([FromBody] JObject rqhdr)
        {
            var ahwalid = Convert.ToInt64(Newtonsoft.Json.JsonConvert.DeserializeObject <string>(rqhdr["ahwalid"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            }));
            //var barcode = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(rqhdr["barcode"].ToString(), new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });
            var defective = Convert.ToByte(Newtonsoft.Json.JsonConvert.DeserializeObject <string>(rqhdr["defective"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            }));
            var serial = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(rqhdr["serial"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            });
            var userid = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(rqhdr["userid"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            });

            var transmode  = rqhdr["transmode"].ToString();
            var handheldid = Convert.ToInt64(Newtonsoft.Json.JsonConvert.DeserializeObject <string>(rqhdr["handheldid"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            }));


            Users user = new Users();

            user.Userid = Convert.ToInt32(rqhdr["userid"]);

            Handhelds h = new Handhelds();

            h.Ahwalid = ahwalid;
            h.Serial  = serial;

            h.Defective = defective;
            Operationlogs result;

            if (transmode == "UPDATE")
            {
                h.Handheldid = handheldid;
                result       = _handheld.Update_HandHeld(user, h);
            }
            else
            {
                result = _handheld.Add_HandHeldr(user, h);
            }

            if (result.Statusid == Core.Handler_Operations.Opeartion_Status_Success)
            {
                return(Ok(result.Text));
            }
            else
            {
                return(Ok(result.Text));
            }
        }
        public Handhelds GetHandHeldByID(Users u, Handhelds h)
        {
            //first we have to check if this Users is authorized to perform this transaction
            if (!_user.isAuthorized(u.Userid, h.Ahwalid, Handler_User.User_Role_Ahwal))
            {
                return(null); //we dont need to log this since its just read operation
            }
            var result = _context.Handhelds.FirstOrDefault <Handhelds>(e => e.Handheldid == h.Handheldid);

            if (result != null)
            {
                return(result);
            }
            return(null);
        }
        public int PostDeletehandheld([FromBody] Handhelds frm)
        {
            int ret = 0;
            NpgsqlConnection cont = new NpgsqlConnection();

            cont.ConnectionString = constr;
            cont.Open();
            NpgsqlCommand cmd = new NpgsqlCommand();

            cmd.Connection  = cont;
            cmd.CommandText = "delete from Handhelds  where handheldid=" + frm.Handheldid;
            ret             = cmd.ExecuteNonQuery();
            cont.Close();
            cont.Dispose();
            return(ret);
        }
        public int PostUpdateHandhelds([FromBody] Handhelds frm)
        {
            int ret = 0;
            NpgsqlConnection cont = new NpgsqlConnection();

            cont.ConnectionString = constr;
            cont.Open();
            NpgsqlCommand cmd = new NpgsqlCommand();

            cmd.Connection  = cont;
            cmd.CommandText = "update Handhelds set AhwalID = " + frm.Ahwalid + ",serial = '" + frm.Serial + "',defective = " + frm.Defective + ",barcode = '" + frm.Barcode + "' where handheldid=" + frm.Handheldid;
            ret             = cmd.ExecuteNonQuery();
            cont.Close();
            cont.Dispose();


            return(ret);
        }
        public int PostAddHandhelds([FromBody] Handhelds frm)
        {
            int ret = 0;
            NpgsqlConnection cont = new NpgsqlConnection();

            cont.ConnectionString = constr;
            cont.Open();
            NpgsqlCommand cmd = new NpgsqlCommand();

            cmd.Connection  = cont;
            cmd.CommandText = "insert into Handhelds(AhwalID,serial,defective,barcode) values (" + frm.Ahwalid + ",'" + frm.Serial + "'," + frm.Defective + ",'" + frm.Barcode + "')";
            ret             = cmd.ExecuteNonQuery();
            cont.Close();
            cont.Dispose();


            return(ret);
        }
예제 #7
0
        public Operationlogs CheckInPatrolAndHandHeld(Users u, Ahwalmapping m, Patrolcars p, Handhelds h)
        {
            try
            {
                //first we have to check if this user is authorized to perform this transaction
                //if (!_user.isAuthorized(u.Userid, p.Ahwalid, Handler_User.User_Role_Ahwal))
                //{
                //    Operationlogs ol_failed = new Operationlogs();
                //    ol_failed.Userid = u.Userid;
                //    ol_failed.Operationid = Handler_Operations.Opeartion_Mapping_CheckInPatrolAndHandHeld;
                //    ol_failed.Statusid = Handler_Operations.Opeartion_Status_UnAuthorized;
                //    ol_failed.Text = "المستخدم لايملك صلاحية هذه العمليه";
                //    _oper.Add_New_Operation_Log(ol_failed);
                //    return ol_failed;
                //}
                //we have to check first that this person doesn't exists before in mapping

                var person_mapping_exists = _context.Ahwalmapping.FirstOrDefault <Ahwalmapping>(e => e.Ahwalmappingid.Equals(m.Ahwalmappingid));
                if (person_mapping_exists == null)
                {
                    Operationlogs ol_failed = new Operationlogs();
                    ol_failed.Userid      = u.Userid;
                    ol_failed.Operationid = Handler_Operations.Opeartion_Mapping_CheckInPatrolAndHandHeld;
                    ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                    ol_failed.Text        = "لم يتم العثور على التوزيع";
                    _oper.Add_New_Operation_Log(ol_failed);
                    return(ol_failed);
                }
                var GetPerson = _context.Persons.FirstOrDefault <Persons>(e => e.Personid.Equals(m.Personid));
                if (GetPerson == null)
                {
                    Operationlogs ol_failed = new Operationlogs();
                    ol_failed.Userid      = u.Userid;
                    ol_failed.Operationid = Handler_Operations.Opeartion_Mapping_CheckInPatrolAndHandHeld;
                    ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                    ol_failed.Text        = "لم يتم العثور على الفرد: " + m.Personid; //todo, change it actual person name
                    _oper.Add_New_Operation_Log(ol_failed);
                    return(ol_failed);
                }
                if (Convert.ToBoolean(person_mapping_exists.Hasdevices))
                {
                    Operationlogs ol_failed = new Operationlogs();
                    ol_failed.Userid      = u.Userid;
                    ol_failed.Operationid = Handler_Operations.Opeartion_Mapping_CheckInPatrolAndHandHeld;
                    ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                    ol_failed.Text        = "هذا المستخدم يملك حاليا اجهزة";
                    _oper.Add_New_Operation_Log(ol_failed);
                    return(ol_failed);
                }
                person_mapping_exists.Patrolid                 = p.Patrolid;
                person_mapping_exists.Handheldid               = h.Handheldid;
                person_mapping_exists.Patrolpersonstateid      = Core.Handler_AhwalMapping.PatrolPersonState_SunRise;
                person_mapping_exists.Sunrisetimestamp         = DateTime.Now;
                person_mapping_exists.Sunsettimestamp          = null;//we have to reset this time
                person_mapping_exists.Hasdevices               = Convert.ToByte(1);
                person_mapping_exists.Laststatechangetimestamp = DateTime.Now;
                _context.SaveChanges();
                //log it

                //we have to add this record in checkIn and CheckOut Table
                var PatrolCheckInLog = new Patrolcheckinout();
                PatrolCheckInLog.Checkinoutstateid = Core.Handler_AhwalMapping.CheckInState;
                PatrolCheckInLog.Timestamp         = DateTime.Now;
                PatrolCheckInLog.Personid          = m.Personid;
                PatrolCheckInLog.Patrolid          = p.Patrolid;
                _context.Patrolcheckinout.Add(PatrolCheckInLog);

                var HandHeldCheckInLog = new Handheldscheckinout();
                HandHeldCheckInLog.Checkinoutstateid = Core.Handler_AhwalMapping.CheckInState;
                HandHeldCheckInLog.Timestamp         = DateTime.Now;
                HandHeldCheckInLog.Personid          = m.Personid;
                HandHeldCheckInLog.Handheldid        = h.Handheldid;
                _context.Handheldscheckinout.Add(HandHeldCheckInLog);

                _context.SaveChanges();

                //record this in personstatechangelog
                var personStateLog = new Patrolpersonstatelog();
                personStateLog.Userid = u.Userid;
                personStateLog.Patrolpersonstateid = Core.Handler_AhwalMapping.PatrolPersonState_SunRise;
                personStateLog.Timestamp           = DateTime.Now;
                personStateLog.Personid            = m.Personid;
                LogPersonStateChange(personStateLog);

                Operationlogs ol = new Operationlogs();
                ol.Userid      = u.Userid;
                ol.Operationid = Handler_Operations.Opeartion_Mapping_CheckInPatrolAndHandHeld;
                ol.Statusid    = Handler_Operations.Opeartion_Status_Success;
                ol.Text        = "تم تسليم الفرد: " + GetPerson.Milnumber.ToString() + " " + GetPerson.Name +
                                 "  الدورية رقم: " + p.Platenumber + " والجهاز رقم: " + h.Serial;
                _oper.Add_New_Operation_Log(ol);

                return(ol);
            }
            catch (Exception ex)
            {
                Operationlogs ol_failed = new Operationlogs();
                ol_failed.Userid      = u.Userid;
                ol_failed.Operationid = Handler_Operations.Opeartion_Mapping_CheckOutPatrolAndHandHeld;
                ol_failed.Statusid    = Handler_Operations.Opeartion_Status_UnKnownError;
                ol_failed.Text        = ex.Message;
                _oper.Add_New_Operation_Log(ol_failed);
                return(ol_failed);
            }
        }
        public Operationlogs Update_HandHeld(Users u, Handhelds h) //this transaction requires User_Role_Maintenance Permisson on this AhwalID
        {
            try
            {
                //first we have to check if this Users is authorized to perform this transaction
                //if (!_user.isAuthorized(u.Userid, h.Ahwalid, Handler_User.User_Role_Maintenance))
                //{
                //    Operationlogs ol_failed = new Operationlogs();
                //    ol_failed.Userid = u.Userid;
                //    ol_failed.Operationid  = Handler_Operations.Opeartion_UpdateHandHeld;
                //    ol_failed.Statusid = Handler_Operations.Opeartion_Status_UnAuthorized;
                //    ol_failed.Text = "المستخدم لايملك صلاحية هذه العمليه";
                //    _oper.Add_New_Operation_Log(ol_failed);
                //    return ol_failed;
                //}
                //next we need to search if there is a Handhelds car with same serial
                Handhelds HandHeld_exists = _context.Handhelds.FirstOrDefault(e => e.Handheldid.Equals(h.Handheldid));
                if (HandHeld_exists == null)
                {
                    Operationlogs ol_failed = new Operationlogs();
                    ol_failed.Userid      = u.Userid;
                    ol_failed.Operationid = Handler_Operations.Opeartion_UpdateHandHeld;
                    ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                    ol_failed.Text        = "لم يتم العثور على لاسلكي بالرقم: " + h.Serial;
                    _oper.Add_New_Operation_Log(ol_failed);
                    return(ol_failed);
                }
                //we have to make sure as well thats the new serial is not there before
                if (HandHeld_exists.Serial != h.Serial)//in case only the Users did choose new serial
                {
                    Handhelds same_HandHeld_serial = _context.Handhelds.FirstOrDefault(e => e.Serial.Equals(h.Serial));
                    if (same_HandHeld_serial != null)
                    {
                        Operationlogs ol_failed = new Operationlogs();
                        ol_failed.Userid      = u.Userid;
                        ol_failed.Operationid = Handler_Operations.Opeartion_UpdateHandHeld;
                        ol_failed.Statusid    = Handler_Operations.Opeartion_Status_Failed;
                        ol_failed.Text        = "يوجد لاسلكي بنفس رقم : " + h.Serial;
                        _oper.Add_New_Operation_Log(ol_failed);
                        return(ol_failed);
                    }
                }

                HandHeld_exists.Serial    = h.Serial;
                HandHeld_exists.Barcode   = "HAN" + h.Serial; //just to make sure no one miss this up even me
                HandHeld_exists.Defective = h.Defective;
                HandHeld_exists.Ahwalid   = h.Ahwalid;        //we are allowing changing of AhwalID for Patrol Cars
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
                Operationlogs ol_failed = new Operationlogs();
                ol_failed.Userid      = u.Userid;
                ol_failed.Operationid = Handler_Operations.Opeartion_UpdateHandHeld;
                ol_failed.Statusid    = Handler_Operations.Opeartion_Status_UnKnownError;
                ol_failed.Text        = ex.Message;
                _oper.Add_New_Operation_Log(ol_failed);
                return(ol_failed);
            }
            Operationlogs ol = new Operationlogs();

            ol.Userid      = u.Userid;
            ol.Operationid = Handler_Operations.Opeartion_UpdateHandHeld;
            ol.Statusid    = Handler_Operations.Opeartion_Status_Success;
            ol.Text        = "تم تعديل بيانات اللاسلكي: " + h.Handheldid;
            _oper.Add_New_Operation_Log(ol);
            return(ol);
        }
        public IActionResult PostCheckInAhwalMapping([FromBody] JObject RqHdr)
        {
            var selectedPerson = RqHdr["personMno"].ToString();
            //  var selectedPatrol = RqHdr["plateNumber"].ToString();

            var selectedPatrol = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(RqHdr["plateNumber"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            });

            var selectedHandHeld = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(RqHdr["serial"].ToString(), new Newtonsoft.Json.JsonSerializerSettings {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            });

            string responsemsg = "";
            Users  user        = new Users();

            user.Userid = Convert.ToInt32(RqHdr["userid"]);

            if (selectedPerson == null)
            {
                responsemsg = "يرجى اختيار الفرد";
                return(Ok(responsemsg));
            }
            var person = _person.GetPersonForUserForRole(user, Convert.ToInt64(selectedPerson), Core.Handler_User.User_Role_Ahwal);

            if (person == null)
            {
                responsemsg = "لم يتم العثور على الفرد";
                return(Ok(responsemsg));
            }

            if (selectedPatrol == null)
            {
                responsemsg = "يرجى اختيار الدورية";
                return(Ok(responsemsg));
            }
            var patrol = _patrol.GetPatrolCarByPlateNumberForUserForRole(user, selectedPatrol.ToString().Trim(), Core.Handler_User.User_Role_Ahwal);

            if (patrol == null)
            {
                responsemsg = "لم يتم العثور على الدورية";
                return(Ok(responsemsg));
            }


            if (selectedHandHeld == null)
            {
                responsemsg = "يرجى اختيار الجهاز";
                return(Ok(responsemsg));
            }
            var handheld = _handheld.GetHandHeldBySerialForUserForRole(user, selectedHandHeld.ToString().Trim(), Core.Handler_User.User_Role_Ahwal);

            var personMapping = _ahwalmapping.GetMappingByPersonID(user, person);

            if (personMapping == null)
            {
                responsemsg = "لم يتم العثور على الفرد في الكشف";
                return(Ok(responsemsg));
            }
            //lets see if this person already has devices, if he does, then its checkout, if not, then its checkin
            if (Convert.ToBoolean(personMapping.Hasdevices)) //checkout
            {
                if (personMapping.Patrolid != patrol.Patrolid)
                {
                    var getPatrol = new Patrolcars();
                    getPatrol.Patrolid = (int)personMapping.Patrolid;
                    getPatrol.Ahwalid  = personMapping.Ahwalid;
                    var patrolexists = _patrol.GetPatrolCardByID(user, getPatrol);
                    if (patrolexists != null)
                    {
                        responsemsg = "يجب تسليم نفس الدورية المستلمه رقم: " + patrolexists.Platenumber;
                        return(Ok(responsemsg));
                    }
                }
                if (personMapping.Handheldid != handheld.Handheldid)
                {
                    var getHandHeld = new Handhelds();
                    getHandHeld.Handheldid = (int)personMapping.Handheldid;
                    getHandHeld.Ahwalid    = personMapping.Ahwalid;
                    var handHeldExist = _handheld.GetHandHeldByID(user, getHandHeld);
                    if (handHeldExist != null)
                    {
                        responsemsg = "يجب تسليم نفس الجهاز المستلم رقم: " + handHeldExist.Serial;
                        return(Ok(responsemsg));
                    }
                }
                var result = _ahwalmapping.CheckOutPatrolAndHandHeld(user, personMapping, patrol, handheld);
                responsemsg = result.Text;

                return(Ok(responsemsg));
            }
            else
            {//check in
                if (_ahwalmapping.PatrolCarWithSomeOneElse(user, person.Personid, patrol.Patrolid))
                {
                    responsemsg = "الدورية بحوزة شخص اخر";
                    return(Ok(responsemsg));
                }
                if (_ahwalmapping.HandHeldWithSomeOneElse(user, person.Personid, handheld.Handheldid))
                {
                    responsemsg = "الجهاز بحوزة شخص اخر";
                    return(Ok(responsemsg));
                }
                if (Convert.ToBoolean(patrol.Defective))
                {
                    responsemsg = "هذه الدورية غير صالحه";
                    return(Ok(responsemsg));
                }
                if (Convert.ToBoolean(handheld.Defective))
                {
                    responsemsg = "هذه الجهاز غير صالح";
                    return(Ok(responsemsg));
                }
                //ok no body else has, the devices are good and not defected
                var result = _ahwalmapping.CheckInPatrolAndHandHeld(user, personMapping, patrol, handheld);
                responsemsg = result.Text;
                return(Ok(responsemsg));
            }
        }