예제 #1
0
 public PictureModel(string fileName)
 {
     _fileName = fileName;
     _iptc     = new IPTCModel();
     _exif     = new EXIFModel();
     _camera   = new CameraModel("", "");
 }
예제 #2
0
        public ICameraModel GetCamera(int ID)
        {
            // TO DO - Select where Camera = ID and return this Camera
            CameraModel newCamera = new CameraModel("", "");

            newCamera.ID = ID;
            cameraTable.Add(newCamera);
            return(newCamera);
        }
예제 #3
0
        /// <summary>
        /// Save camera in the db
        /// </summary>
        /// <param name="camera"></param>
        public void SaveCamera(CameraModel camera)
        {
            var query = "INSERT INTO dbo.CameraModel(Producer, Make, BoughtOn, Notes, ISOLimitAcceptable, ISOLimitGood)"
                        + "VALUES(@producer, @make, @boughtOn, @notes, @isoAcc, @isoGood);";

            // Create and prepare an SQL statement.
            var producerParam =
                new SqlParameter("@producer", SqlDbType.Text, 255)
            {
                Value = camera.Producer
            };
            var makeParam =
                new SqlParameter("@make", SqlDbType.Text, 255)
            {
                Value = camera.Make
            };
            var boughtOnParam =
                new SqlParameter("@boughtOn", SqlDbType.DateTime)
            {
                Value = camera.BoughtOn
            };
            var notesParam = new SqlParameter("@notes", SqlDbType.Text, 255)
            {
                Value = camera.Notes
            };
            var isoAccLimit = new SqlParameter("@isoAcc", SqlDbType.Decimal)
            {
                Value = camera.ISOLimitAcceptable, Precision = 18, Scale = 0
            };
            var isoGood = new SqlParameter("@isoGood", SqlDbType.Decimal)
            {
                Value = camera.ISOLimitGood, Precision = 18, Scale = 0
            };

            using (var connection = new SqlConnection(ConnectionString))
            {
                connection.Open();
                var command = new SqlCommand(null, connection)
                {
                    CommandText = query
                };

                command.Parameters.Add(producerParam);
                command.Parameters.Add(makeParam);
                command.Parameters.Add(boughtOnParam);
                command.Parameters.Add(notesParam);
                command.Parameters.Add(isoAccLimit);
                command.Parameters.Add(isoGood);

                // Call Prepare after setting the Commandtext and Parameters.
                command.Prepare();

                // Change parameter values and call ExecuteNonQuery.
                command.ExecuteScalar();
                connection.Close();
            }
        }
예제 #4
0
 public CameraViewModel(CameraModel core)
 {
     _make               = core.Make;
     _producer           = core.Producer;
     _id                 = core.ID;
     _ISOLimitAcceptable = core.ISOLimitAcceptable;
     _ISOLimitGood       = core.ISOLimitGood;
     _boughton           = core.BoughtOn;
 }
예제 #5
0
        public MockDataAccessLayer()
        {
            CameraModel cm = new CameraModel();

            CameraList.Add(1234, cm);

            PhotographerModel pm = new PhotographerModel();

            pm.ID = 1234;
            PhotographerList.Add(pm.ID, pm);
        }
예제 #6
0
        public void Add(CameraModel p)
        {
            if (p == null)
            {
                return;
            }
            CameraViewModel pvm = new CameraViewModel(p);

            _List.Add(pvm);
            CurrentIndex = Count - 1;
            OnPropertyChanged("List");
            OnPropertyChanged("Count");
        }
예제 #7
0
        /// <summary>
        /// Returns ONE Camera
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public ICameraModel GetCamera(int ID)
        {
            var queryString =
                $"Select ID, Producer, Make, BoughtOn, Notes, ISOLimitGood, ISOLimitAcceptable from CameraModel"
                + " WHERE ID = @id;";

            SqlParameter idparam = new SqlParameter("@id", SqlDbType.Int)
            {
                Value = ID
            };

            var model = new CameraModel();

            using (var connection = new SqlConnection(ConnectionString))
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = queryString;
                    command.Parameters.Add(idparam);
                    connection.Open();

                    using (var reader = command.ExecuteReader())
                    {
                        reader.Read();


                        int.TryParse(reader["ID"].ToString(), out var tempInt);
                        model.ID       = tempInt;
                        model.Producer = reader["Producer"]?.ToString();
                        model.Make     = reader["Make"]?.ToString();
                        if (reader["BoughtOn"] != DBNull.Value)
                        {
                            model.BoughtOn = DateTime.Parse(reader["BoughtOn"].ToString());
                        }
                        if (reader["Notes"] != DBNull.Value)
                        {
                            model.Notes = reader["Notes"]?.ToString();
                        }
                        if (reader["ISOLimitGood"] != DBNull.Value)
                        {
                            model.ISOLimitGood = Decimal.Parse(reader["ISOLimitGood"].ToString());
                        }
                        if (reader["ISOLimitAcceptable"] != DBNull.Value)
                        {
                            model.ISOLimitAcceptable = Decimal.Parse(reader["ISOLimitAcceptable"].ToString());
                        }
                    }
                }
            return(model);
        }
예제 #8
0
        public MockDataAccessLayer()
        {
            IPictureModel p = new PictureModel("Blume.jpg");

            p.ID = 1234;
            Save(p);
            IPhotographerModel ph = new PhotographerModel();

            ph.ID = 1234;
            Save(ph);
            ICameraModel c = new CameraModel();

            c.ID = 1234;
            Save(c);
        }
예제 #9
0
        /// <summary>
        /// Returns a list of ALL Cameras.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <ICameraModel> GetCameras()
        {
            var queryString =
                $"Select ID, Producer, Make, BoughtOn, Notes, ISOLimitGood, ISOLimitAcceptable from CameraModel;";
            var liste = new List <ICameraModel>();

            using (var connection = new SqlConnection(ConnectionString))
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = queryString;

                    connection.Open();

                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var model = new CameraModel();
                            int.TryParse(reader["ID"].ToString(), out var tempInt);
                            model.ID       = tempInt;
                            model.Producer = reader["Producer"].ToString();
                            model.Make     = reader["Make"].ToString();
                            if (reader["BoughtOn"] != DBNull.Value)
                            {
                                model.BoughtOn = DateTime.Parse(reader["BoughtOn"].ToString());
                            }
                            if (reader["Notes"] != DBNull.Value)
                            {
                                model.Notes = reader["Notes"]?.ToString();
                            }
                            if (reader["ISOLimitGood"] != DBNull.Value)
                            {
                                model.ISOLimitGood = Decimal.Parse(reader["ISOLimitGood"].ToString());
                            }
                            if (reader["ISOLimitAcceptable"] != DBNull.Value)
                            {
                                model.ISOLimitAcceptable = Decimal.Parse(reader["ISOLimitAcceptable"].ToString());
                            }
                            liste.Add(model);
                        }
                    }
                }
            return(liste);
        }
예제 #10
0
 public void Save(CameraModel newCamera)
 {
     _dal.Save(newCamera);
 }
예제 #11
0
 /// <summary>
 /// creates new camera view model for given ICameraModel
 /// </summary>
 /// <param name="c"></param>
 public CameraViewModel(ICameraModel c)
 {
     _Camera = (CameraModel)c;
     _Camera.PropertyChanged += SubPropertyChanged;
 }
예제 #12
0
        /// <summary>
        /// Save a camera in the database
        /// </summary>
        /// <param name="camera"></param>
        public void SaveCamera(CameraModel camera)
        {
            var dal = (DataAccessLayer)_dataAccessLayer;

            dal.SaveCamera(camera);
        }
예제 #13
0
        /// <summary>
        /// returns camera with given ID
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public ICameraModel GetCamera(int ID)
        {
            if (_Cameras.ContainsKey(ID))
            {
                return(_Cameras[ID]);
            }
            else
            {
                ICameraModel cm = new CameraModel();

                SqlCommand c = new SqlCommand(null, dbc);
                c.CommandText = "SELECT ID, Producer, Make, BoughtOn, Notes, ISOLimitGood, ISOLimitAcceptable FROM Cameras WHERE ID = @id";
                SqlParameter id = new SqlParameter("@id", SqlDbType.Int, 0);
                id.Value = ID;
                c.Parameters.Add(id);
                c.Prepare();
                SqlDataReader dr = c.ExecuteReader();
                if (dr.Read())
                {
                    cm.ID = dr.GetInt32(0);
                    try
                    {
                        cm.Producer = dr.GetString(1);
                    }
                    catch (SqlNullValueException) { }
                    try
                    {
                        cm.Make = dr.GetString(2);
                    }
                    catch (SqlNullValueException) { }
                    try
                    {
                        cm.BoughtOn = dr.GetDateTime(3);
                    }
                    catch (SqlNullValueException) { }
                    try
                    {
                        cm.Notes = dr.GetString(4);
                    }
                    catch (SqlNullValueException) { }
                    try
                    {
                        cm.ISOLimitGood = dr.GetDecimal(5);
                    }
                    catch (SqlNullValueException) { }
                    try
                    {
                        cm.ISOLimitAcceptable = dr.GetDecimal(6);
                    }
                    catch (SqlNullValueException) { }
                    dr.Close();
                    _Cameras.Add(cm.ID, (CameraModel)cm);
                    return(cm);
                }
                else
                {
                    dr.Close();
                    throw new ElementWithIdDoesNotExistException();
                }
            }
        }