public CallCentarListResponse GetCallCentarsByPage(int companyId, CallCentarViewModel CallCentarSearchObject, int currentPage = 1, int itemsPerPage = 50, int?userId = null)
        {
            CallCentarListResponse     response    = new CallCentarListResponse();
            List <CallCentarViewModel> CallCentars = new List <CallCentarViewModel>();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                try
                {
                    SqliteCommand selectCommand = new SqliteCommand(
                        SqlCommandSelectPart +
                        "FROM CallCentars " +
                        "WHERE CompanyId = @CompanyId " +
                        "AND (@UserId IS NULL OR @UserId = '' OR UserId = @UserId) " +
                        "ORDER BY IsSynced, ServerId " +
                        "LIMIT @ItemsPerPage OFFSET @Offset;", db);

                    selectCommand.Parameters.AddWithValue("@CompanyId", companyId);
                    selectCommand.Parameters.AddWithValue("@ItemsPerPage", itemsPerPage);
                    selectCommand.Parameters.AddWithValue("@Offset", (currentPage - 1) * itemsPerPage);
                    selectCommand.Parameters.AddWithValue("@UserId", ((object)userId ?? DBNull.Value));

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    while (query.Read())
                    {
                        CallCentarViewModel dbEntry = Read(query);
                        CallCentars.Add(dbEntry);
                    }
                    selectCommand = new SqliteCommand(
                        "SELECT Count(*) " +
                        "FROM CallCentars " +
                        "WHERE CompanyId = @CompanyId " +
                        "AND (@UserId IS NULL OR @UserId = '' OR UserId = @UserId) ", db);

                    selectCommand.Parameters.AddWithValue("@CompanyId", companyId);
                    selectCommand.Parameters.AddWithValue("@UserId", ((object)userId ?? DBNull.Value));

                    query = selectCommand.ExecuteReader();

                    if (query.Read())
                    {
                        response.TotalItems = query.GetInt32(0);
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    response.CallCentars    = new List <CallCentarViewModel>();
                    return(response);
                }
                db.Close();
            }
            response.Success     = true;
            response.CallCentars = CallCentars;
            return(response);
        }
        public JsonResult NotifyUser([FromBody] CallCentarViewModel c)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                if (c.User != null)
                {
                    string target = "Korisnik_" + c.User.Id;
                    notificationHub.Clients.Group(target).SendAsync("SendMessage", c);
                }
                response.CallCentar = c;
                response.Success    = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }

            JsonResult result = Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting            = Newtonsoft.Json.Formatting.Indented,
                ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize
            });

            return(result);
        }
        public static CallCentar ConvertToCallCentar(this CallCentarViewModel CallCentarViewModel)
        {
            CallCentar CallCentar = new CallCentar()
            {
                Id         = CallCentarViewModel.Id,
                Identifier = CallCentarViewModel.Identifier,

                Code          = CallCentarViewModel.Code,
                ReceivingDate = CallCentarViewModel.ReceivingDate,

                UserId = CallCentarViewModel.User?.Id ?? null,

                Comment     = CallCentarViewModel.Comment,
                EndingDate  = CallCentarViewModel.EndingDate,
                CheckedDone = CallCentarViewModel.CheckedDone,
                Active      = CallCentarViewModel.IsActive,

                CreatedById = CallCentarViewModel.CreatedBy?.Id ?? null,
                CompanyId   = CallCentarViewModel.Company?.Id ?? null,

                CreatedAt = CallCentarViewModel.CreatedAt,
                UpdatedAt = CallCentarViewModel.UpdatedAt,
            };

            return(CallCentar);
        }
        public CallCentarResponse Create(CallCentarViewModel CallCentar)
        {
            CallCentarResponse response = new CallCentarResponse();

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

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

                try
                {
                    insertCommand = AddCreateParameters(insertCommand, CallCentar);
                    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 CallCentarViewModel ConvertToCallCentarViewModel(this CallCentar CallCentar)
        {
            CallCentarViewModel CallCentarViewModel = new CallCentarViewModel()
            {
                Id         = CallCentar.Id,
                Identifier = CallCentar.Identifier,

                Code          = CallCentar.Code,
                ReceivingDate = CallCentar.ReceivingDate,

                User = CallCentar.User?.ConvertToUserViewModelLite(),

                Comment     = CallCentar.Comment,
                EndingDate  = CallCentar.EndingDate,
                CheckedDone = CallCentar.CheckedDone,
                IsActive    = CallCentar.Active,

                CreatedBy = CallCentar.CreatedBy?.ConvertToUserViewModelLite(),
                Company   = CallCentar.Company?.ConvertToCompanyViewModelLite(),

                UpdatedAt = CallCentar.UpdatedAt,
                CreatedAt = CallCentar.CreatedAt,
            };

            return(CallCentarViewModel);
        }
        public CallCenterNotification_Popup(CallCentarViewModel CallCentarViewModel)
        {
            InitializeComponent();

            this.DataContext = this;

            CurrentCallCentar = CallCentarViewModel;
        }
Ejemplo n.º 7
0
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            CallCentarViewModel CallCentar = new CallCentarViewModel();

            CallCentar.Identifier = Guid.NewGuid();

            CallCentar_AddEdit addEditForm = new CallCentar_AddEdit(CallCentar, true);

            addEditForm.CallCentarCreatedUpdated += new CallCentarHandler(SyncData);
            FlyoutHelper.OpenFlyout(this, ((string)Application.Current.FindResource("CallCentar")), 95, addEditForm);
        }
Ejemplo n.º 8
0
        public CallCentar_AddEdit(CallCentarViewModel CallCentarViewModel, bool isCreateProcess, bool isPopup = false)
        {
            CallCentarService = DependencyResolver.Kernel.Get <ICallCentarService>();

            InitializeComponent();

            this.DataContext = this;

            CurrentCallCentar = CallCentarViewModel;
            IsCreateProcess   = isCreateProcess;
            IsPopup           = isPopup;
        }
        public CallCentarResponse NotifyUser(CallCentarViewModel callCentar)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                response = WpfApiHandler.SendToApi <CallCentarViewModel, CallCentarResponse>(callCentar, "NotifyUser");
            }
            catch (Exception ex)
            {
                response.CallCentar = new CallCentarViewModel();
                response.Success    = false;
                response.Message    = ex.Message;
            }

            return(response);
        }
Ejemplo n.º 10
0
        public async Task OnNotification(CallCentarViewModel callCenter)
        {
            string kome = "Korisnik_" + (callCenter?.User?.Id ?? 0);

            if (!String.IsNullOrEmpty(kome))
            {
                var group = Clients.Group(kome);
                if (group != null)
                {
                    await Clients.Group(kome).SendAsync("OnNotification", callCenter);
                }
            }
            else
            {
                await Clients.All.SendAsync("OnNotification", callCenter);
            }

            //await Clients.All.SendAsync("ReceiveMessage", message);
        }
        public CallCentarResponse Delete(Guid identifier)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                CallCentarViewModel CallCentar = new CallCentarViewModel();
                CallCentar.Identifier = identifier;
                response = WpfApiHandler.SendToApi <CallCentarViewModel, CallCentarResponse>(CallCentar, "Delete");
            }
            catch (Exception ex)
            {
                response.CallCentar = new CallCentarViewModel();
                response.Success    = false;
                response.Message    = ex.Message;
            }

            return(response);
        }
        public CallCentarListResponse GetCallCentarsForPopup(int companyId, string filterString)
        {
            CallCentarListResponse     response    = new CallCentarListResponse();
            List <CallCentarViewModel> CallCentars = new List <CallCentarViewModel>();

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

                    selectCommand.Parameters.AddWithValue("@CompanyId", ((object)filterString) != null ? companyId : 0);
                    selectCommand.Parameters.AddWithValue("@ItemsPerPage", 100);

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    while (query.Read())
                    {
                        CallCentarViewModel dbEntry = Read(query);
                        CallCentars.Add(dbEntry);
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    response.CallCentars    = new List <CallCentarViewModel>();
                    return(response);
                }
                db.Close();
            }
            response.Success     = true;
            response.CallCentars = CallCentars;
            return(response);
        }
        private CallCentarViewModel Read(SqliteDataReader query)
        {
            int counter = 0;
            CallCentarViewModel dbEntry = new CallCentarViewModel();

            dbEntry.Id            = SQLiteHelper.GetInt(query, ref counter);
            dbEntry.Identifier    = SQLiteHelper.GetGuid(query, ref counter);
            dbEntry.Code          = SQLiteHelper.GetString(query, ref counter);
            dbEntry.ReceivingDate = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.User          = SQLiteHelper.GetUser(query, ref counter);
            dbEntry.Comment       = SQLiteHelper.GetString(query, ref counter);
            dbEntry.EndingDate    = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.CheckedDone   = SQLiteHelper.GetBoolean(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);
        }
        public CallCentarResponse Create(CallCentarViewModel re)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                CallCentar addedCallCentar = unitOfWork.GetCallCentarRepository().Create(re.ConvertToCallCentar());

                unitOfWork.Save();

                response.CallCentar = addedCallCentar.ConvertToCallCentarViewModel();
                response.Success    = true;
            }
            catch (Exception ex)
            {
                response.CallCentar = new CallCentarViewModel();
                response.Success    = false;
                response.Message    = ex.Message;
            }

            return(response);
        }
        public CallCentarResponse GetCallCentar(Guid identifier)
        {
            CallCentarResponse  response   = new CallCentarResponse();
            CallCentarViewModel CallCentar = null;

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

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    if (query.Read())
                    {
                        CallCentarViewModel dbEntry = Read(query);
                        CallCentar = dbEntry;
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    response.CallCentar     = new CallCentarViewModel();
                    return(response);
                }
                db.Close();
            }
            response.Success    = true;
            response.CallCentar = CallCentar;
            return(response);
        }
        public JsonResult Delete([FromBody] CallCentarViewModel callCentar)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                response = this.callCentarService.Delete(callCentar.Identifier);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }

            JsonResult result = Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting            = Newtonsoft.Json.Formatting.Indented,
                ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize
            });

            return(result);
        }
        public SqliteCommand AddCreateParameters(SqliteCommand insertCommand, CallCentarViewModel CallCentar)
        {
            insertCommand.Parameters.AddWithValue("@ServerId", CallCentar.Id);
            insertCommand.Parameters.AddWithValue("@Identifier", CallCentar.Identifier);
            insertCommand.Parameters.AddWithValue("@Code", ((object)CallCentar.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ReceivingDate", ((object)CallCentar.ReceivingDate) ?? DBNull.Value);

            insertCommand.Parameters.AddWithValue("@UserId", ((object)CallCentar.User?.Id) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@UserIdentifier", ((object)CallCentar.User?.Identifier) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@UserCode", ((object)CallCentar.User?.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@UserFirstName", ((object)CallCentar.User?.FirstName) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@UserLastName", ((object)CallCentar.User?.LastName) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@Comment", ((object)CallCentar.Comment) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EndingDate", ((object)CallCentar.EndingDate) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@CheckedDone", ((object)CallCentar.CheckedDone) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@IsSynced", CallCentar.IsSynced);
            insertCommand.Parameters.AddWithValue("@UpdatedAt", ((object)CallCentar.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);
        }
Ejemplo n.º 18
0
        private void BtnSubmit_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (String.IsNullOrEmpty(CurrentCallCentar.User.FirstName))
            {
                MainWindow.WarningMessage = ((string)Application.Current.FindResource("ObaveznoPoljeKorisnik"));
                return;
            }

            #endregion

            Thread th = new Thread(() =>
            {
                SubmitButtonContent = ((string)Application.Current.FindResource("Čuvanje_u_tokuTriTacke"));
                SubmitButtonEnabled = false;

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

                CallCentarResponse response = new CallCentarSQLiteRepository().Delete(CurrentCallCentar.Identifier);
                response = new CallCentarSQLiteRepository().Create(CurrentCallCentar);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Greška_kod_lokalnog_čuvanjaUzvičnik"));
                    SubmitButtonContent     = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled     = true;
                    return;
                }

                response = CallCentarService.Create(CurrentCallCentar);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Podaci_su_sačuvani_u_lokaluUzvičnikTačka_Greška_kod_čuvanja_na_serveruUzvičnik"));
                    SubmitButtonContent     = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled     = true;
                }

                if (response.Success)
                {
                    MainWindow.SuccessMessage = ((string)Application.Current.FindResource("Podaci_su_uspešno_sačuvaniUzvičnik"));
                    SubmitButtonContent       = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled       = true;

                    CallCentarCreatedUpdated();

                    if (IsCreateProcess)
                    {
                        CurrentCallCentar            = new CallCentarViewModel();
                        CurrentCallCentar.Identifier = Guid.NewGuid();

                        Application.Current.Dispatcher.BeginInvoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(() =>
                        {
                            dtReceivingDate.Focus();
                        })
                            );
                    }
                    else
                    {
                        Application.Current.Dispatcher.BeginInvoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(() =>
                        {
                            if (IsPopup)
                            {
                                FlyoutHelper.CloseFlyoutPopup(this);
                            }
                            else
                            {
                                FlyoutHelper.CloseFlyout(this);
                            }
                        })
                            );
                    }
                }
            });
            th.IsBackground = true;
            th.Start();
        }
 public CallCentarResponse NotifyUser(CallCentarViewModel callCentar)
 {
     // Nema potrebe za implementacijom jer se sve izvrsava u kontroleru
     return(null);
 }