//--------------------------------------EVENT----START-WORK---------------------------------------------

        private async void StartWork(object sender, EventArgs e)
        {
            string assignmentName = assignmentList.SelectedItem?.ToString();

            if (string.IsNullOrEmpty(assignmentName))
            {
                await DisplayAlert("Työ puuttuu", "Valitse ensin aloitettava työtehtävä!", "OK");
            }
            else
            {
                try
                {
                    // Käytetään Xamarin sovellukseen luotua model luokkaa ja perustetaan objekti palvelimelle lähetettäväksi.

                    WorkAssignmentOperationModel data = new WorkAssignmentOperationModel()
                    {
                        Operation       = "Start",
                        AssignmentTitle = assignmentName
                    };

                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("https://timesheetrestapi.azurewebsites.net/");


                    // Muutetaan em. data objekti Jsoniksi
                    string        input   = JsonConvert.SerializeObject(data);
                    StringContent content = new StringContent(input, Encoding.UTF8, "application/json");


                    // Lähetetään serialisoitu objekti back-endiin Post pyyntönä
                    HttpResponseMessage message = await client.PostAsync("/api/workassignments", content);


                    // Otetaan vastaan palvelimen vastaus
                    string reply = await message.Content.ReadAsStringAsync();


                    //Asetetaan vastaus serialisoituna success muuttujaan
                    bool success = JsonConvert.DeserializeObject <bool>(reply);


                    if (success)                                                       // Näytetään ehdollisesti alert viesti
                    {
                        await DisplayAlert("Työn aloitus", "Työ aloitettu.", "Sulje"); // (otsikko, teksti, kuittausnapin teksti)
                    }
                    else
                    {
                        await DisplayAlert("Aloitus ei onnistu", "Työ on jo käynnissä!", "Sulje"); // Muutettu 4.5.
                    }
                }

                catch (Exception ex)                                             // Otetaan poikkeus ex muuttujaan ja sijoitetaan errorMessageen
                {
                    string errorMessage = ex.GetType().Name + ": " + ex.Message; // Poikkeuksen customoitu selvittäminen ja...

                    assignmentList.ItemsSource = new string[] { errorMessage };  // ..näyttäminen list viewissä
                }
            }
        }
예제 #2
0
        public async void StartWork(object sender, EventArgs e) //StopWork = rutiini (Clicked Button)
        {
            string assignmentName = assignmentList.SelectedItem?.ToString();

            if (string.IsNullOrEmpty(assignmentName))
            {
                await DisplayAlert("Start Work", "You must select work assignment first.", "OK");
            }

            else

            {
                try
                {
                    WorkAssignmentOperationModel data = new WorkAssignmentOperationModel()
                    {
                        Operation       = "Start",
                        AssignmentTitle = assignmentName
                    };

                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("http://mobilebackendmvc-api2.azurewebsites.net/");

                    string        input   = JsonConvert.SerializeObject(data);
                    StringContent content = new StringContent(input, Encoding.UTF8, "application/json");


                    HttpResponseMessage message = await client.PostAsync("/api/workassignment", content);

                    string reply = await message.Content.ReadAsStringAsync();

                    bool success = JsonConvert.DeserializeObject <bool>(reply);

                    if (success)
                    {
                        await DisplayAlert("Start Work", "Work has been started.", "Close");
                    }

                    else
                    {
                        await DisplayAlert("Start Work", "Could not start work.", "Close");
                    }
                }
                catch (Exception ex)
                {
                    string errorMessage = ex.GetType().Name + ": " + ex.Message;
                    assignmentList.ItemsSource = new string[] { errorMessage };
                }
            }
        }
예제 #3
0
        [HttpPost] //verbiattribuutti
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            MobileWorkDataEntities entities = new MobileWorkDataEntities();

            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                //NumberStyles style;
                //CultureInfo provider;
                //provider = new CultureInfo("fi-FI");
                //string valueString = input.Latitude.ToString("R", CultureInfo.InvariantCulture);
                //style = NumberStyles.AllowDecimalPoint;


                if (input.Operation == "Start")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheets newEntry = new Timesheets()
                    {
                        Id_WorkAssignment = assignmentId,
                        StartTime         = DateTime.Now,
                        WorkComplete      = false,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheets.Add(newEntry);
                }
                else if (input.Operation == "Stop")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheets existing = (from ts in entities.Timesheets
                                           where (ts.Id_WorkAssignment == assignmentId) &&
                                           (ts.Active == true) && (ts.WorkComplete == false)
                                           orderby ts.StartTime descending
                                           select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
예제 #4
0
 [HttpPost] //verbiattribuutti
 public bool GetStatus(WorkAssignmentOperationModel input)
 {
     return(true);
 }
예제 #5
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            TimesheetEntities entities = new TimesheetEntities();

            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                if (input.Operation == "Start")
                {
                    int        assignmentId = assignment.Id_WorkAssignment;
                    Timesheets newEntry     = new Timesheets()
                    {
                        Id_WorkAssignment = assignmentId,
                        StartTime         = DateTime.Now,
                        WorkComplete      = false,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheets.Add(newEntry);

                    //Päivitetään samalla work-assignmentin tilatietoja
                    assignment.InProgress     = true;
                    assignment.InProgressAt   = DateTime.Now;
                    assignment.LastModifiedAt = DateTime.Now;
                }
                else if (input.Operation == "Stop")
                {
                    int        assignmentId = assignment.Id_WorkAssignment;
                    Timesheets existing     = (from ts in entities.Timesheets
                                               where (ts.Id_WorkAssignment == assignmentId) &&
                                               (ts.Active == true) && (ts.WorkComplete == false)
                                               orderby ts.StartTime descending
                                               select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;

                        //Päivitetään samalla work-assignmentin tilatietoja
                        assignment.InProgress     = false;
                        assignment.Completed      = true;
                        assignment.CompletedAt    = DateTime.Now;
                        assignment.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
        private async void StopWork(object sender, EventArgs e)
        {
            string assignmentName = assignmentList.SelectedItem?.ToString();

            if (string.IsNullOrEmpty(assignmentName))
            {
                await DisplayAlert("Työ puuttuu", "Valitse ensin aloitettava työtehtävä", "OK");
            }
            else
            {
                string result = await DisplayPromptAsync("Kommentti", "Kirjoita kommentti tai kuittaus", "OK", "Peruuta", "Kirjoita tähän");

                if (string.IsNullOrEmpty(result))
                {
                    string kommentti = " ";
                    SelectedEmployee.Comment = kommentti;
                }
                else
                {
                    string kommentti = result;
                    SelectedEmployee.Comment = kommentti;
                }
                try
                {
                    // Käytetään Xamarin sovellukseen luotua model luokkaa ja perustetaan objekti palvelimelle lähetettäväksi

                    WorkAssignmentOperationModel data = new WorkAssignmentOperationModel()
                    {
                        Operation       = "Stop",
                        AssignmentTitle = assignmentName,
                        Name            = SelectedEmployee.Name,
                        Comment         = SelectedEmployee.Comment
                    };

                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("https://timesheetrestapiriku.azurewebsites.net"); // yhteys RestApi appiin

                    // muutetaan em data objekti Jsoniksi
                    string        input   = JsonConvert.SerializeObject(data);
                    StringContent content = new StringContent(input, Encoding.UTF8, "application/json");

                    //Lähetetään serialisoitu objekti back-endiin Post pyyntönä
                    HttpResponseMessage message = await client.PostAsync("/api/workassignments", content);

                    // Otetaan vastaan palvelimen vastaus
                    string reply = await message.Content.ReadAsStringAsync();

                    // Asetetaan vastaus serialisoituna success muuttujaan
                    bool success = JsonConvert.DeserializeObject <bool>(reply);

                    if (success)
                    {
                        await DisplayAlert("Työn lopetus", "Työ lopetettu", "Sulje");

                        assignmentList.ItemsSource = "";
                    }
                    else
                    {
                        await DisplayAlert("Työn lopetus", "Työtä ei voitu lopettaa, koska sitä ei ole aloitettu", "Sulje");
                    }
                }

                catch (Exception ex)
                {
                    string errorMessage = ex.GetType().Name + ": " + ex.Message; //Poikkeuksen customoitu selvittäminen ja näyttäminen list viewssä
                    assignmentList.ItemsSource = new string[] { errorMessage };
                }
            }
        }
        // tapahtuma käsittelijä - aloita työ

        private async void StartWork(object sender, EventArgs e)
        {
            string assignmentName = assignmentList.SelectedItem?.ToString();

            if (string.IsNullOrEmpty(assignmentName))
            {
                await DisplayAlert("Työ puuttuu", "Valitse ensin aloitettava työtehtävä", "OK");
            }
            else
            {
                // Selvitetään nykyinen lokaatio sekä kysytään kohteen lokaatio ja lasketaan niiden välinen matka
                var request       = new GeolocationRequest(GeolocationAccuracy.Medium);
                var locationStart = await Geolocation.GetLocationAsync(request);

                string osoite = await DisplayPromptAsync("Sijainti", "Anna työkohteen sijainti");

                if (string.IsNullOrEmpty(osoite))
                {
                    distanceLabel.Text = "Osoite tieto puuttuu...";
                }
                else
                {
                    var locations = await Geocoding.GetLocationsAsync(osoite);

                    var locationEnd = locations?.FirstOrDefault();
                    // Viedään tiedot SelectedEmployee tauluun lähetystä varten
                    SelectedEmployee.Latitude   = locationEnd.Latitude.ToString();
                    SelectedEmployee.Longtitude = locationEnd.Longitude.ToString();

                    double kilometrit = Math.Round(Location.CalculateDistance(locationStart, locationEnd, DistanceUnits.Kilometers), 2);
                    distanceLabel.Text = kilometrit.ToString();

                    await DisplayAlert("Työmatkan pituus", kilometrit.ToString() + " km", "OK");
                }

                // Luodaan PopUp ikkuna mahdolliselle kommentin jättämiselle. Kommentti string välitetään SelectedEmployy olioon
                string result = await DisplayPromptAsync("Kommentti", "Kirjoita kommentti tai kuittaus");

                if (string.IsNullOrEmpty(result))
                {
                    SelectedEmployee.Comment = " ";
                }
                else
                {
                    SelectedEmployee.Comment = result;
                }

                try
                {
                    // Käytetään Xamarin sovellukseen luotua model luokkaa ja perustetaan objekti palvelimelle lähetettäväksi

                    WorkAssignmentOperationModel data = new WorkAssignmentOperationModel()
                    {
                        Operation       = "Start",
                        AssignmentTitle = assignmentName,
                        Name            = SelectedEmployee.Name,
                        Comment         = SelectedEmployee.Comment,
                        Latitude        = SelectedEmployee.Latitude,
                        Longtitude      = SelectedEmployee.Longtitude
                    };

                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("https://timesheetrestapiriku.azurewebsites.net"); // yhteys RestApi appiin

                    // muutetaan em data objekti Jsoniksi
                    string        input   = JsonConvert.SerializeObject(data);
                    StringContent content = new StringContent(input, Encoding.UTF8, "application/json");

                    //Lähetetään serialisoitu objekti bacn-endiin Post pyyntönä
                    HttpResponseMessage message = await client.PostAsync("/api/workassignments", content);

                    // Otetaan vastaan palvelimen vastaus
                    string reply = await message.Content.ReadAsStringAsync();

                    // Asetetaan vastaus serialisoituna success muuttujaan
                    bool success = JsonConvert.DeserializeObject <bool>(reply);

                    if (success)
                    {
                        await DisplayAlert("Työn aloitus", "Työ aloitettu", "Sulje");
                    }
                    else
                    {
                        await DisplayAlert("Aloitus ei onnistu", "Työ on jo käynnissä!", "Sulje");
                    }
                }

                catch (Exception ex)
                {
                    string errorMessage = ex.GetType().Name + ": " + ex.Message; //Poikkeuksen customoitu selvittäminen ja näyttäminen list viewssä
                    assignmentList.ItemsSource = new string[] { errorMessage };
                }
            }
        }
예제 #8
0
        public bool PostStatus(WorkAssignmentOperationModel input) // Todo: Ota myös customer ja employee tieto
        {
            tuntidbContext context = new tuntidbContext();

            try
            {       //Ensin haetaan työtehtävä Otsikon (title) perusteella ja nimetään se assignment muuttujaksi
                WorkAssignments assignment = (from wa in context.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                //--------------------------IF--START----------------------------------------------------------------------

                else if (input.Operation == "Start")
                {
                    if (assignment.InProgress == true || assignment.Completed == true) // Lisätty 4.5.

                    {
                        return(false);
                    }
                    else
                    {
                        int assignmentId = assignment.IdWorkAssignment;

                        // Luodaan uusi timesheet työlle

                        Timesheet newEntry = new Timesheet()
                        {
                            IdWorkAssignment = assignmentId,
                            StartTime        = DateTime.Now,
                            //WorkComplete = false, ------------ poistettu turha kenttä
                            Active    = true,
                            CreatedAt = DateTime.Now
                        };

                        context.Timesheet.Add(newEntry);

                        // Päivitetään työtehtävän tilaa myös work assignments tauluun

                        WorkAssignments assignments = (from wa in context.WorkAssignments
                                                       where (wa.IdWorkAssignment == assignmentId) &&
                                                       (wa.Active == true)
                                                       select wa).FirstOrDefault();

                        assignment.InProgress     = true;
                        assignment.WorkStartedAt  = DateTime.Now;
                        assignment.LastModifiedAt = DateTime.Now;

                        context.SaveChanges(); // talletetaan kaikki em muutokset
                    }
                }

                //--------------------------------IF--STOP----------------------------------------------------------------------

                else if (input.Operation == "Stop")
                {
                    int assignmentId = assignment.IdWorkAssignment;

                    // Halutaan muuttaa tietoja sekä timesheetiin...

                    Timesheet existing = (from ts in context.Timesheet
                                          where (ts.IdWorkAssignment == assignmentId) &&
                                          (ts.Active == true)
                                          select ts).FirstOrDefault();

                    //............että work assignmentteihin

                    WorkAssignments assignments = (from wa in context.WorkAssignments
                                                   where (wa.IdWorkAssignment == assignmentId) &&
                                                   (wa.Active == true)
                                                   select wa).FirstOrDefault();

                    if (existing != null && assignment != null)
                    {
                        if (assignment.InProgress == false || assignment.Completed == true) // Muutettu 4.5.

                        {
                            return(false);
                        }
                        else
                        {
                            // Timesheetin uudet arvot

                            existing.StopTime       = DateTime.Now;
                            existing.WorkComplete   = true;
                            existing.LastModifiedAt = DateTime.Now;


                            // Assignmentin uudet arvot

                            assignment.LastModifiedAt = DateTime.Now;
                            assignment.Completed      = true;
                            assignment.CompletedAt    = DateTime.Now;
                            assignment.InProgress     = false;
                        }
                    }

                    else
                    {
                        return(false); // Jos id tieto on null jommassa kummassa.
                    }
                }

                context.SaveChanges();     // talletetaan kaikki em muutokset
            }

            catch
            {
                return(false); // Jos jotain muuta menee pileen.
            }

            finally
            {
                context.Dispose();
            }
            return(true); // Mobiilisovellukselle palautetaan true
        }
        // ----------------------- EVENT - ALOITA TYÖ ------------------------------------------//
        private async void btnStartWork_Clicked(object sender, EventArgs e)
        {
            string latitude  = lblLatitude.Text;
            string longitude = lblLongitude.Text;

            //Tarkistetaan ensin, onko näkymässä valittu työtä. Muutetaan se string-muotoon
            string assignmentName = listWorkAssignments.SelectedItem?.ToString();


            if (string.IsNullOrEmpty(assignmentName))
            {
                await DisplayAlert("Työ puuttuu", "Valitse ensin aloitettava työ", "OK");
            }

            else
            {
                //---- Jostain syystä LOPETA TYÖN kommentti ei tallentunut tietokantaan, jos tämä ALOITA TYÖ kommentti oli siellä jo. ----//

                string comment = await DisplayPromptAsync("Työn kommentti", "Kirjoita kommentti");

                if (string.IsNullOrEmpty(comment))
                {
                    SelectedEmployee.StartComment = "";
                }
                else
                {
                    SelectedEmployee.StartComment = comment;
                }



                try
                {
                    //Käytetään perustettua WorkAssignmentOperationModel-luokkaa ja luodaan objekti palvelimelle lähetettäväksi
                    WorkAssignmentOperationModel operationData = new WorkAssignmentOperationModel()
                    {
                        Operation       = "Start",
                        AssignmentTitle = assignmentName,
                        Name            = SelectedEmployee.Name,
                        Comment         = SelectedEmployee.StartComment,
                        Latitude        = latitude,
                        Longitude       = longitude
                    };



                    //HTTP-yhteyden alustaminen
                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("https://timesheetrestapiske.azurewebsites.net/");


                    //Muutetaan operationData => JSON:ksi
                    string        operationInput   = JsonConvert.SerializeObject(operationData);
                    StringContent operationContent = new StringContent(operationInput, Encoding.UTF8, "application/json");


                    //Lähetetään serialisoitu objekti  back-endille POST-pyyntönä
                    HttpResponseMessage operationMessage = await client.PostAsync("api/workassignments", operationContent);


                    //Otetaan vastaan palvelimen vastaus
                    string operationReply = await operationMessage.Content.ReadAsStringAsync();

                    //Asetetaan operationReply deserialisoituna operationSuccess -muuttujaan
                    bool operationSuccess = JsonConvert.DeserializeObject <bool>(operationReply);


                    //Näytetään mobiilissa kuittausviesti
                    if (operationSuccess)
                    {
                        await DisplayAlert("Työn aloitus", "Työ on aloitettu", "OK");
                    }
                    else
                    {
                        await DisplayAlert("Työn aloitus", "Työtä ei voi aloittaa, koska se on jo aloitettu.", "Sulje");
                    }
                }
                catch (Exception ex)                                                 //otetaan poikkeus kiinni muuttujaan ex ja ja sijoitetaan errorMessageen
                {
                    string errorMessage = ex.GetType().Name + ": " + ex.Message;     //poikkeuksen selvittäminen
                    listWorkAssignments.ItemsSource = new string[] { errorMessage }; //ja näytetään listViewssä mobiilissa
                }
            }
        }
예제 #10
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            ProjektitDBCareContext context = new ProjektitDBCareContext();

            try
            {
                // Haetaan aktiiviset työtehtävät nimen perusteella ja sijoitetaan se oneAssignment-muuttujaan
                WorkAssignments oneAssignment = (from wa in context.WorkAssignments
                                                 where wa.Active == true &&
                                                 wa.Title == input.AssignmentTitle //Otsikko vastaa sitä, mitä mobiilisovellus on lähettänyt
                                                 select wa).FirstOrDefault();



                //Hajautetaan valitun työntekijän nimi kahteen muuttujaan etu- ja sukunimeksi
                //(Lisättiin WorkAssingmentOperationModel.cs:ään prop Name)
                string[] nameParts = input.Name.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                string   fname     = nameParts[0];
                string   lname     = nameParts[1];


                //Luodaan Employees tyyppinen olio (employee) edellisen nimen jaon perusteella
                Employees employee = (from e in context.Employees
                                      where e.Active == true &&
                                      e.FirstName == fname &&
                                      e.LastName == lname
                                      select e).FirstOrDefault();


                if (oneAssignment == null)
                {
                    return(false);
                }


                // ---------- Jos painettu "ALOITA TYÖ" -------------//
                else if (input.Operation == "Start")
                {
                    if (oneAssignment.InProgress == true || oneAssignment.Completed == true)
                    {
                        return(false);
                    }
                    else
                    {
                        int    assignmentId = oneAssignment.IdWorkAssignment;
                        int    employeeId   = employee.IdEmployee;
                        string oneComment   = input.Comment;
                        string latitude     = input.Latitude;
                        string longitude    = input.Longitude;

                        //Luodaan työlle uusi TimeSheet
                        Timesheet newEntry = new Timesheet()
                        {
                            IdWorkAssignment = assignmentId,
                            IdEmployee       = employeeId,
                            StartTime        = DateTime.Now,
                            Active           = true,
                            Comments         = oneComment + " - " + fname,
                            Longitude        = longitude,
                            Latitude         = latitude,
                            CreatedAt        = DateTime.Now,
                            LastModifiedAt   = DateTime.Now
                        };

                        context.Timesheet.Add(newEntry);

                        //Päivitetään samalla myös WorkAssignments-taulua
                        oneAssignment.InProgress     = true;
                        oneAssignment.WorkStartedAt  = DateTime.Now;
                        oneAssignment.LastModifiedAt = DateTime.Now;
                    }


                    //Tallennetaan kaikki em. muutokset tietokantaan
                    context.SaveChanges();
                }

                // ---------- Jos painettu "LOPETA TYÖ" -------------//
                else if (input.Operation == "Stop")
                {
                    string oneFinalComment = input.Comment;

                    int assignmentId = oneAssignment.IdWorkAssignment;

                    //Haetaan tiedot Timesheet ja WorkAssignments-tauluista ja.....
                    Timesheet timesheet = (from ts in context.Timesheet
                                           where ts.IdWorkAssignment == assignmentId &&
                                           ts.Active == true
                                           select ts).FirstOrDefault();


                    WorkAssignments assignments = (from wa in context.WorkAssignments
                                                   where wa.IdWorkAssignment == assignmentId &&
                                                   wa.Active == true
                                                   select wa).FirstOrDefault();


                    //....muutetaan niiden tietoja
                    if (timesheet != null && assignments != null)
                    {
                        if (assignments.InProgress == false || assignments.Completed == true)
                        {
                            return(false);
                        }

                        else
                        {
                            //Timesheet-taulun uudet tiedot
                            timesheet.StopTime       = DateTime.Now;
                            timesheet.LastModifiedAt = DateTime.Now;
                            timesheet.Comments       = oneFinalComment + " - " + fname;


                            //WorkAssignments-taulun uudet tiedot
                            assignments.Completed      = true;
                            assignments.CompletedAt    = DateTime.Now;
                            assignments.InProgress     = false;
                            assignments.LastModifiedAt = DateTime.Now;
                        }
                    }
                    else
                    {
                        return(false);  //Jos id-tieto on null jommassa kummassa
                    }
                }

                context.SaveChanges();
            }

            catch (Exception)
            {
                return(false);  //jos jotain meni pieleen
            }

            finally
            {
                context.Dispose();
            }

            return(true);  //Mobiilisovellukselle palautetaan true, kun kaikki onnistui
        }
예제 #11
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            TimesheetMobileEntities entities = new TimesheetMobileEntities();


            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }
                if (input.Operation == "Start")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheet newEntry = new Timesheet()
                    {
                        Id_WorkAssignment = assignmentId,
                        WorkComplete      = false,
                        StartTime         = DateTime.Now,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheet.Add(newEntry);
                }
                else if (input.Operation == "Stop")
                {
                    int       assignmentId = assignment.Id_WorkAssignment;
                    Timesheet existing     = (from ts in entities.Timesheet
                                              where (ts.Id_WorkAssignment == assignmentId) &&
                                              (ts.Active == true)
                                              select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            MobileDBEntities1 entities = new MobileDBEntities1();

            try
            {
                WorkAssignment assignment = (from e in entities.WorkAssignments
                                             where (e.Active == true) &&
                                             (e.Title == input.AssignmentTitle)
                                             select e).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                if (input.Operation == "Start")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheet newEntry = new Timesheet()
                    {
                        Id_WorkAssignment = assignmentId,
                        StartTime         = DateTime.Now,
                        WorkComplete      = false,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheets.Add(newEntry);

                    //assignment.InProgress = true;
                    //assignment.InProgressAt = DateTime.Now;
                    //assignment.LastModifiedAt = DateTime.Now;
                }
                else if (input.Operation == "Stop")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheet existing = (from op in entities.Timesheets
                                          where (op.Id_WorkAssignment == assignmentId) &&
                                          (op.Active == true) && (op.WorkComplete == false)
                                          orderby op.StartTime descending
                                          select op).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;

                        //assignment.InProgress = false;
                        //assignment.Completed = true;
                        //assignment.CompletedAt = DateTime.Now;
                        //assignment.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }

            return(true);
        }