private void btnCancelPhone_Click(object sender, RoutedEventArgs e)
 {
     CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
     CurrentBusinessPartnerPhoneForm.Identifier = Guid.NewGuid();
     CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Added;
     CurrentBusinessPartnerPhoneForm.IsSynced   = false;
 }
        private BusinessPartnerPhoneViewModel Read(SqliteDataReader query)
        {
            int counter = 0;
            BusinessPartnerPhoneViewModel dbEntry = new BusinessPartnerPhoneViewModel();

            dbEntry.Id                     = SQLiteHelper.GetInt(query, ref counter);
            dbEntry.Identifier             = SQLiteHelper.GetGuid(query, ref counter);
            dbEntry.BusinessPartner        = SQLiteHelper.GetBusinessPartner(query, ref counter);
            dbEntry.Phone                  = SQLiteHelper.GetString(query, ref counter);
            dbEntry.Mobile                 = SQLiteHelper.GetString(query, ref counter);
            dbEntry.Fax                    = SQLiteHelper.GetString(query, ref counter);
            dbEntry.Email                  = SQLiteHelper.GetString(query, ref counter);
            dbEntry.ContactPersonFirstName = SQLiteHelper.GetString(query, ref counter);
            dbEntry.ContactPersonLastName  = SQLiteHelper.GetString(query, ref counter);
            dbEntry.Birthday               = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.Description            = SQLiteHelper.GetString(query, ref counter);
            dbEntry.Path                   = SQLiteHelper.GetString(query, ref counter);
            dbEntry.ItemStatus             = SQLiteHelper.GetInt(query, ref counter);
            dbEntry.IsSynced               = SQLiteHelper.GetBoolean(query, ref counter);
            dbEntry.UpdatedAt              = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.CreatedBy              = SQLiteHelper.GetCreatedBy(query, ref counter);
            dbEntry.Company                = SQLiteHelper.GetCompany(query, ref counter);

            return(dbEntry);
        }
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            Thread th = new Thread(() =>
            {
                SubmitButtonEnabled = false;

                var response = new BusinessPartnerPhoneSQLiteRepository().SetStatusDeleted(CurrentBusinessPartnerPhoneDG.Identifier);
                if (response.Success)
                {
                    MainWindow.SuccessMessage = ((string)Application.Current.FindResource("Stavka_je_uspešno_obrisanaUzvičnik"));

                    BusinessPartnerCreatedUpdated();

                    DisplayBusinessPartnerPhoneData();

                    CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
                    CurrentBusinessPartnerPhoneForm.Identifier = Guid.NewGuid();
                    CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Added;
                    CurrentBusinessPartnerPhoneForm.IsSynced   = false;

                    CurrentBusinessPartnerPhoneDG = null;
                }
                else
                {
                    MainWindow.ErrorMessage = response.Message;
                }

                SubmitButtonEnabled = true;
            });

            th.Start();
        }
        private SqliteCommand AddCreateParameters(SqliteCommand insertCommand, BusinessPartnerPhoneViewModel businessPartnerPhone)
        {
            insertCommand.Parameters.AddWithValue("@ServerId", businessPartnerPhone.Id);
            insertCommand.Parameters.AddWithValue("@Identifier", businessPartnerPhone.Identifier);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerId", ((object)businessPartnerPhone.BusinessPartner.Id) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerIdentifier", ((object)businessPartnerPhone.BusinessPartner.Identifier) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerCode", ((object)businessPartnerPhone.BusinessPartner.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerName", ((object)businessPartnerPhone.BusinessPartner.Name) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerInternalCode", ((object)businessPartnerPhone.BusinessPartner.InternalCode) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerNameGer", ((object)businessPartnerPhone.BusinessPartner.NameGer) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Phone", ((object)businessPartnerPhone.Phone) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Mobile", ((object)businessPartnerPhone.Mobile) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Fax", ((object)businessPartnerPhone.Fax) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Email", ((object)businessPartnerPhone.Email) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ContactPersonFirstName", ((object)businessPartnerPhone.ContactPersonFirstName) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ContactPersonLastName", ((object)businessPartnerPhone.ContactPersonLastName) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Birthday", ((object)businessPartnerPhone.Birthday) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Description", ((object)businessPartnerPhone.Description) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Path", ((object)businessPartnerPhone.Path) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ItemStatus", ((object)businessPartnerPhone.ItemStatus) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@IsSynced", businessPartnerPhone.IsSynced);
            insertCommand.Parameters.AddWithValue("@UpdatedAt", ((object)businessPartnerPhone.UpdatedAt) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@CreatedById", MainWindow.CurrentUser.Id);
            insertCommand.Parameters.AddWithValue("@CreatedByName", MainWindow.CurrentUser.FirstName + " " + MainWindow.CurrentUser.LastName);
            insertCommand.Parameters.AddWithValue("@CompanyId", MainWindow.CurrentCompany.Id);
            insertCommand.Parameters.AddWithValue("@CompanyName", MainWindow.CurrentCompany.CompanyName);

            return(insertCommand);
        }
        public BusinessPartnerPhoneResponse Create(BusinessPartnerPhoneViewModel businessPartnerPhone)
        {
            BusinessPartnerPhoneResponse response = new BusinessPartnerPhoneResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = db.CreateCommand();
                insertCommand.CommandText = SqlCommandInsertPart;

                try
                {
                    insertCommand = AddCreateParameters(insertCommand, businessPartnerPhone);
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
        public static BusinessPartnerPhone ConvertToBusinessPartnerPhone(this BusinessPartnerPhoneViewModel businessPartnerPhoneViewModel)
        {
            BusinessPartnerPhone businessPartnerPhone = new BusinessPartnerPhone()
            {
                Id         = businessPartnerPhoneViewModel.Id,
                Identifier = businessPartnerPhoneViewModel.Identifier,

                BusinessPartnerId = businessPartnerPhoneViewModel.BusinessPartner?.Id ?? null,

                Phone  = businessPartnerPhoneViewModel.Phone,
                Mobile = businessPartnerPhoneViewModel.Mobile,
                Fax    = businessPartnerPhoneViewModel.Fax,
                Email  = businessPartnerPhoneViewModel.Email,
                ContactPersonFirstName = businessPartnerPhoneViewModel.ContactPersonFirstName,
                ContactPersonLastName  = businessPartnerPhoneViewModel.ContactPersonLastName,

                Birthday = businessPartnerPhoneViewModel.Birthday,

                Description = businessPartnerPhoneViewModel.Description,
                Path        = businessPartnerPhoneViewModel.Path,
                ItemStatus  = businessPartnerPhoneViewModel.ItemStatus,
                Active      = businessPartnerPhoneViewModel.IsActive,
                CreatedById = businessPartnerPhoneViewModel.CreatedBy?.Id ?? null,
                CompanyId   = businessPartnerPhoneViewModel.Company?.Id ?? null,

                UpdatedAt = businessPartnerPhoneViewModel.UpdatedAt,
                CreatedAt = businessPartnerPhoneViewModel.CreatedAt,
            };

            return(businessPartnerPhone);
        }
        public static BusinessPartnerPhoneViewModel ConvertToBusinessPartnerPhoneViewModelLite(this BusinessPartnerPhone businessPartnerPhone)
        {
            BusinessPartnerPhoneViewModel businessPartnerPhoneViewModel = new BusinessPartnerPhoneViewModel()
            {
                Id         = businessPartnerPhone.Id,
                Identifier = businessPartnerPhone.Identifier,

                Phone  = businessPartnerPhone.Phone,
                Mobile = businessPartnerPhone.Mobile,
                Fax    = businessPartnerPhone.Fax,
                Email  = businessPartnerPhone.Email,
                ContactPersonFirstName = businessPartnerPhone.ContactPersonFirstName,
                ContactPersonLastName  = businessPartnerPhone.ContactPersonLastName,

                Birthday = businessPartnerPhone.Birthday,

                Description = businessPartnerPhone.Description,
                Path        = businessPartnerPhone.Path,
                ItemStatus  = businessPartnerPhone.ItemStatus,
                IsActive    = businessPartnerPhone.Active,

                UpdatedAt = businessPartnerPhone.UpdatedAt,
                CreatedAt = businessPartnerPhone.CreatedAt,
            };

            return(businessPartnerPhoneViewModel);
        }
        private void btnEditPhone_Click(object sender, RoutedEventArgs e)
        {
            CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
            CurrentBusinessPartnerPhoneForm.Identifier = CurrentBusinessPartnerPhoneDG.Identifier;
            CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Edited;

            CurrentBusinessPartnerPhoneForm.IsSynced = CurrentBusinessPartnerPhoneDG.IsSynced;
            CurrentBusinessPartnerPhoneForm.ContactPersonFirstName = CurrentBusinessPartnerPhoneDG.ContactPersonFirstName;
            CurrentBusinessPartnerPhoneForm.ContactPersonLastName  = CurrentBusinessPartnerPhoneDG.ContactPersonLastName;
            CurrentBusinessPartnerPhoneForm.Description            = CurrentBusinessPartnerPhoneDG.Description;
            CurrentBusinessPartnerPhoneForm.Mobile    = CurrentBusinessPartnerPhoneDG.Mobile;
            CurrentBusinessPartnerPhoneForm.Phone     = CurrentBusinessPartnerPhoneDG.Phone;
            CurrentBusinessPartnerPhoneForm.Fax       = CurrentBusinessPartnerPhoneDG.Fax;
            CurrentBusinessPartnerPhoneForm.Email     = CurrentBusinessPartnerPhoneDG.Email;
            CurrentBusinessPartnerPhoneForm.Birthday  = CurrentBusinessPartnerPhoneDG.Birthday;
            CurrentBusinessPartnerPhoneForm.Path      = CurrentBusinessPartnerPhoneDG.Path;
            CurrentBusinessPartnerPhoneForm.UpdatedAt = CurrentBusinessPartnerPhoneDG.UpdatedAt;
        }
        public BusinessPartnerPhoneListResponse GetBusinessPartnerPhonesByBusinessPartner(int companyId, Guid businessPartnerIdentifier)
        {
            BusinessPartnerPhoneListResponse     response = new BusinessPartnerPhoneListResponse();
            List <BusinessPartnerPhoneViewModel> businessPartnerPhones = new List <BusinessPartnerPhoneViewModel>();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                try
                {
                    SqliteCommand selectCommand = new SqliteCommand(
                        SqlCommandSelectPart +
                        "FROM BusinessPartnerPhones " +
                        "WHERE BusinessPartnerIdentifier = @BusinessPartnerIdentifier " +
                        "AND CompanyId = @CompanyId " +
                        "ORDER BY IsSynced, Id DESC;", db);

                    selectCommand.Parameters.AddWithValue("@BusinessPartnerIdentifier", businessPartnerIdentifier);
                    selectCommand.Parameters.AddWithValue("@CompanyId", companyId);

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    while (query.Read())
                    {
                        BusinessPartnerPhoneViewModel dbEntry = Read(query);
                        businessPartnerPhones.Add(dbEntry);
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage        = error.Message;
                    response.Success               = false;
                    response.Message               = error.Message;
                    response.BusinessPartnerPhones = new List <BusinessPartnerPhoneViewModel>();
                    return(response);
                }
                db.Close();
            }
            response.Success = true;
            response.BusinessPartnerPhones = businessPartnerPhones;
            return(response);
        }
        public BusinessPartner_Phone_AddEdit(BusinessPartnerViewModel businessPartner)
        {
            businessPartnerService      = DependencyResolver.Kernel.Get <IBusinessPartnerService>();
            businessPartnerPhoneService = DependencyResolver.Kernel.Get <IBusinessPartnerPhoneService>();

            InitializeComponent();

            this.DataContext = this;

            CurrentBusinessPartner                     = businessPartner;
            CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
            CurrentBusinessPartnerPhoneForm.Identifier = Guid.NewGuid();
            CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Added;
            CurrentBusinessPartnerPhoneForm.IsSynced   = false;

            Thread displayThread = new Thread(() => DisplayBusinessPartnerPhoneData());

            displayThread.IsBackground = true;
            displayThread.Start();

            txtPhoneContactPersonFirstName.Focus();
        }
        public BusinessPartnerPhoneResponse GetBusinessPartnerPhone(Guid identifier)
        {
            BusinessPartnerPhoneResponse  response             = new BusinessPartnerPhoneResponse();
            BusinessPartnerPhoneViewModel businessPartnerPhone = new BusinessPartnerPhoneViewModel();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                try
                {
                    SqliteCommand selectCommand = new SqliteCommand(
                        SqlCommandSelectPart +
                        "FROM BusinessPartnerPhones " +
                        "WHERE Identifier = @Identifier;", db);
                    selectCommand.Parameters.AddWithValue("@Identifier", identifier);

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    if (query.Read())
                    {
                        BusinessPartnerPhoneViewModel dbEntry = Read(query);
                        businessPartnerPhone = dbEntry;
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage       = error.Message;
                    response.Success              = false;
                    response.Message              = error.Message;
                    response.BusinessPartnerPhone = new BusinessPartnerPhoneViewModel();
                    return(response);
                }
                db.Close();
            }
            response.Success = true;
            response.BusinessPartnerPhone = businessPartnerPhone;
            return(response);
        }
        private void btnAddPhone_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (CurrentBusinessPartnerPhoneForm.ContactPersonFirstName == null)
            {
                MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Obavezno_poljeDvotačka_Ime"));
                return;
            }

            #endregion

            Thread th = new Thread(() =>
            {
                SubmitButtonEnabled = false;


                CurrentBusinessPartnerPhoneForm.BusinessPartner = CurrentBusinessPartner;


                CurrentBusinessPartnerPhoneForm.Company = new CompanyViewModel()
                {
                    Id = MainWindow.CurrentCompanyId
                };
                CurrentBusinessPartnerPhoneForm.CreatedBy = new UserViewModel()
                {
                    Id = MainWindow.CurrentUserId
                };

                new BusinessPartnerPhoneSQLiteRepository().Delete(CurrentBusinessPartnerPhoneForm.Identifier);
                var response = new BusinessPartnerPhoneSQLiteRepository().Create(CurrentBusinessPartnerPhoneForm);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = response.Message;

                    CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
                    CurrentBusinessPartnerPhoneForm.Identifier = Guid.NewGuid();
                    CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Added;
                    CurrentBusinessPartnerPhoneForm.IsSynced   = false;
                    return;
                }

                CurrentBusinessPartnerPhoneForm            = new BusinessPartnerPhoneViewModel();
                CurrentBusinessPartnerPhoneForm.Identifier = Guid.NewGuid();
                CurrentBusinessPartnerPhoneForm.ItemStatus = ItemStatus.Added;
                CurrentBusinessPartnerPhoneForm.IsSynced   = false;
                BusinessPartnerCreatedUpdated();

                DisplayBusinessPartnerPhoneData();

                Application.Current.Dispatcher.BeginInvoke(
                    System.Windows.Threading.DispatcherPriority.Normal,
                    new Action(() =>
                {
                    txtPhoneContactPersonFirstName.Focus();
                })
                    );
                SubmitButtonEnabled = true;
            });
            th.IsBackground = true;
            th.Start();
        }