示例#1
0
    public Leak GenerateLeak()
    {
        Leak leak = leakFactory.Create();

        leak.transform.position = GetRandomPosition();
        leak.transform.parent   = transform;
        return(leak);
    }
示例#2
0
 public void CompleteTouch()
 {
     if (current != null)
     {
         current.Close();
     }
     current = generator.GenerateLeak();
 }
示例#3
0
    void StartLeak()
    {
        if (leversWithLeaksZones.Count != 0)
        {
            bool checkIfLeakAvailable = false;
            foreach (LeverScript item in leversWithLeaksZones)
            {
                for (int i = 0; i < 2; i++)
                {
                    if (item.allLeaksZones[i] != null)
                    {
                        checkIfLeakAvailable = true;
                        goto LoopEnd;
                    }
                }
            }
LoopEnd:
            if (!checkIfLeakAvailable)
            {
                return; // no leak available
            }
            int lever;
            do
            {
                lever = Random.Range(0, leversWithLeaksZones.Count);
            }while
            (leversWithLeaksZones[lever].allLeaksZones[0] == null && leversWithLeaksZones[lever].allLeaksZones[1] == null);
            int pipe;
            if (leversWithLeaksZones[lever].allLeaksZones[0] != null && leversWithLeaksZones[lever].allLeaksZones[1] != null)
            {
                pipe = Random.Range(0, 2);
            }
            else
            {
                if (leversWithLeaksZones[lever].allLeaksZones[0] != null)
                {
                    pipe = 0;
                }
                else
                {
                    pipe = 1;
                }
            }
            int        leakZone   = Random.Range(0, leversWithLeaksZones[lever].allLeaksZones[pipe].Count);
            GameObject leak       = Instantiate(leakPrefab, leversWithLeaksZones[lever].allLeaksZones[pipe][leakZone].GetRandomLeakPosition(), Quaternion.identity);
            Leak       leakScript = leak.GetComponent <Leak>();
            leakScript.associatedPipeLeaksZones             = leversWithLeaksZones[lever].allLeaksZones[pipe];
            leakScript.associatedLever                      = leversWithLeaksZones[lever];
            leakScript.associatedPipe                       = pipe;
            leversWithLeaksZones[lever].allLeaksZones[pipe] = null;
            allLeaks.Add(leak);
            SoundsManager.instance.PlaySoundOneShot(SoundsManager.SoundName.StartLeak, leakSource);
            CharacterController2D.instance.animatorFace.SetTrigger("Choc");
        }
    }
示例#4
0
        public JsonResult SensorsLevels(int id)
        {
            var sensorsUpdates = CsvReadWrite.ReadSensorsLevel(@"C:\Users\ASUS\Desktop\WaterLeakDetection\sensorsLevel.txt");

            foreach (var item in sensorsUpdates)
            {
                var sensor = sensorRepository.GetSensorById(item.Id);
                var leakDB = leakRepository.GetLastLeak(sensor);
                sensor.CurrentLevel = item.CurrentLevel;
                var leakState = leakDB != null ? leakDB.IsRepared : true;
                if (sensor.CurrentLevel > 200)
                {
                    sensor.Count += 1;
                }
                if (sensor.CurrentLevel < 200 && leakState)
                {
                    sensor.Count = 0;
                }
                if (sensor.CurrentLevel < 200 && leakState)
                {
                    sensor.Count -= 1;
                }
                System.Diagnostics.Debug.WriteLine(sensor.Count);



                if (sensor.Count == -1 && leakState && leakDB != null)
                {
                    leakDB.IsRepared = true;
                    leakRepository.Update(leakDB);
                    sensor.Count = 0;
                }
                if (sensor.Count == 1)
                {
                    var leak = new Leak {
                        Sensor = sensor, OccurrenceDate = DateTime.Now
                    };
                    leakRepository.Add(leak);
                    sensor.Count = 0;
                    string subjet   = "New Leak";
                    string body     = string.Format("New leak has been occured .\n Sensor : {0}", sensor.Name);
                    string addresse = "*****@*****.**";
                    SendEmail(addresse, subjet, body);
                    System.Diagnostics.Debug.WriteLine("email sent");
                }

                sensorRepository.update(sensor);
            }
            var departement = departementRepository.GetDepartementById(id);
            var sensors     = sensorRepository.GetAllDepartementSensors(departement);
            var json        = JsonConvert.SerializeObject(sensors);

            return(Json(json));
        }
示例#5
0
 public void CleanUpLeaks()
 {
     for (int i = leaks.Count - 1; i >= 0; i--)
     {
         Leak leak = leaks[i];
         if (leak.IsFixed())
         {
             availLeakLocations.Add(leak.transform.parent);
             leaks.RemoveAt(i);
             Destroy(leak.gameObject);
         }
     }
 }
示例#6
0
    public void StartSpecificLeak(LeakZone leakZone, List <LeakZone> pipeLeakZones, LeverScript associatedLever, int associatedPipe, LeverScript.RessourcesType ressource = LeverScript.RessourcesType.none)
    {
        GameObject leak       = Instantiate(leakPrefab, leakZone.GetRandomLeakPosition(), Quaternion.identity);
        Leak       leakScript = leak.GetComponent <Leak>();

        leakScript.associatedPipeLeaksZones           = pipeLeakZones;
        leakScript.associatedLever                    = associatedLever;
        leakScript.associatedPipe                     = associatedPipe;
        leakScript.currentRessource                   = ressource;
        associatedLever.allLeaksZones[associatedPipe] = null;
        allLeaks.Add(leak);
        SoundsManager.instance.PlaySoundOneShot(SoundsManager.SoundName.StartLeak, leakSource);
        CharacterController2D.instance.animatorFace.SetTrigger("Choc");
    }
示例#7
0
 private void FindLeak(string url, Leak leak, AttackResult result)
 {
     foreach (var fileName in leak.FileNames)
     {
         string         testedFile = url + "/" + fileName;
         WebPageRequest webRequest = new WebPageRequest(testedFile);
         WebPageLoader.Load(webRequest);
         if (Check_Contents(webRequest.Response.Body, leak.FingerPrints))
         {
             result.Success = true;
             result.Results.Enqueue("Tested File: " + testedFile);
             break;
         }
     }
 }
示例#8
0
        public MainViewModel(IDataService dataService)
        {
            _dataService = dataService;
            _dataService.LoadLeaks(
                (leaks, error) =>
            {
                if (error != null)
                {
                    // Report error here
                    return;
                }
                Leaks = leaks;
            });

            AddLeakCommand = new RelayCommand(AddLeak);
            LeakInfo       = new Leak();
            CommentInfo    = new Comment();
        }
示例#9
0
    /// <summary>
    /// Creates a leak randomly in the boat
    /// </summary>
    public void GenerateRandomLeak()
    {
        int randomCollider = Random.Range(0, myColliders.Length);

        Collider2D selectedCollider = myColliders[randomCollider];

        Debug.Log(selectedCollider.bounds.center);
        float randomX = Random.Range(selectedCollider.bounds.min.x, selectedCollider.bounds.max.x);
        float randomY = Random.Range(selectedCollider.bounds.min.y, selectedCollider.bounds.max.y);

        Vector3 position = new Vector3(randomX, randomY, transform.position.z);

        Leak newLeak = Instantiate(LeakPrefab, position, Quaternion.identity);

        newLeak.AttachLeak(myRigidbody);

        activeLeaks.Add(newLeak);
    }
示例#10
0
        public void DeleteLeak(DateTime ldate)
        {
            Leak found = null;

            foreach (var item in Leaks)
            {
                if (item.CreateDate == ldate)
                {
                    found = item;
                }
            }
            if (found != null)
            {
                Leaks.Remove(found);
                _dataService.SaveLeaks(Leaks);
            }
            else
            {
                Console.WriteLine("Leak date not found!");
            }
        }
示例#11
0
        public MainViewModel(IDataService dataService)
        {
            _dataService = dataService;
            _dataService.LoadLeaks(
                (leaks, error) =>
            {
                if (error != null)
                {
                    // Report error here
                    return;
                }
                Leaks = leaks;
            });

            AddLeakCommand    = new RelayCommand(AddLeak);
            DeleteLeakCommand = new RelayCommand <DateTime>((d) => DeleteLeak(d));
            AddCommentCommand = new RelayCommand <DateTime>((d) => AddComment(d));
            LeakInfo          = new Leak();
            CommentInfo       = new Comment();
            CommentTextInfo   = "";
        }
示例#12
0
        public void AddLeak()
        {
            var tempLeak = new Leak()
            {
                CreateDate = LeakInfo.CreateDate,
                Title      = LeakInfo.Title,
                Comments   = new ObservableCollection <Comment>()
            };
            var tempComment = new Comment()
            {
                CreateDate = LeakInfo.CreateDate,
                Text       = CommentInfo.Text
            };

            tempLeak.Comments.Add(tempComment);
            Leaks.Add(tempLeak);
            _dataService.SaveLeaks(Leaks);
            RaisePropertyChanged("Leaks");
            LeakInfo    = new Leak();
            CommentInfo = new Comment();
        }
示例#13
0
        public void AddComment(DateTime ldate)
        {
            Leak found = null;

            foreach (var item in Leaks)
            {
                if (item.CreateDate == ldate)
                {
                    found = item;
                }
            }
            if (found != null)
            {
                found.Comments.Add(new Comment {
                    CreateDate = DateTime.Now, Text = CommentTextInfo
                });
                _dataService.SaveLeaks(Leaks);
                CommentTextInfo = "";
            }
            else
            {
                Console.WriteLine("Leak date not found!");
            }
        }
示例#14
0
 public override bool Release(int decrement)
 {
     Leak.Record();
     return(base.Release(decrement));
 }
示例#15
0
 public override bool Release()
 {
     Leak.Record();
     return(base.Release());
 }
示例#16
0
 public override IReferenceCounted Touch(object hint)
 {
     Leak.Record(hint);
     return(this);
 }
示例#17
0
 public override IReferenceCounted Touch()
 {
     Leak.Record();
     return(this);
 }
示例#18
0
 public override IReferenceCounted Retain(int increment)
 {
     Leak.Record();
     return(base.Retain(increment));
 }
示例#19
0
 public override IReferenceCounted Retain()
 {
     Leak.Record();
     return(base.Retain());
 }
 public void Add(Leak leak)
 {
     _appDbContext.Leaks.Add(leak);
     _appDbContext.SaveChanges();
 }
 public void Update(Leak leak)
 {
     _appDbContext.Leaks.Update(leak);
     _appDbContext.SaveChanges();
 }