Esempio n. 1
0
        public ActionResult EditPiece(int IndividualPieceId)
        {
            using (DataStoreContext db = new DataStoreContext())
            {
                var pieces = (from aw in db.ArtWork
                              join ip in db.IndividualPiece
                              on aw.ArtWorkId equals ip.ArtWorkId
                              where ip.IndividualPieceId == IndividualPieceId
                              select new PieceViewModel
                {
                    IndividualPieceId = ip.IndividualPieceId,
                    Title = aw.Title,
                    Cost = ip.Cost,
                    AskingPrice = ip.Price,
                    Sold = ip.Sold
                }).ToList();


                PieceViewModel pieceForEdit = new PieceViewModel
                {
                    Title       = pieces.Select(p => p.Title).FirstOrDefault(),
                    Cost        = pieces.Select(p => p.Cost).FirstOrDefault(),
                    AskingPrice = pieces.Select(p => p.AskingPrice).FirstOrDefault(),
                    Sold        = pieces.Select(p => p.Sold).FirstOrDefault()
                };


                return(View(pieceForEdit));
            }
        }
Esempio n. 2
0
        public ActionResult CreatePiece(PieceViewModel pieces)
        {
            using (DataStoreContext db = new DataStoreContext())
            {
                if (ModelState.IsValid)
                {
                    var matchingArtWork = db.ArtWork.First(a => a.Title == pieces.Title).ArtWorkId;

                    if (matchingArtWork > 0)
                    {
                        IndividualPiece piece = new IndividualPiece
                        {
                            ArtWorkId     = matchingArtWork,
                            Image         = pieces.Image,
                            Price         = pieces.AskingPrice,
                            Cost          = pieces.Cost,
                            Sold          = pieces.Sold,
                            EditionNumber = pieces.EditionNumber,
                            Location      = pieces.Location,
                            InvoiceId     = null
                        };
                        db.IndividualPiece.Add(piece);
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ViewBag.Title = "Our system currently only supports adding new prints of existing art.";
                    }
                }

                return(View(pieces));
            }
        }
Esempio n. 3
0
        public IActionResult Put(string id, [FromBody] PieceViewModel piece)
        {
            if (id == null || piece == null || !this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            this.manager.Update(id, piece);

            return(this.Ok());
        }
Esempio n. 4
0
        public IActionResult Post([FromBody] PieceViewModel piece)
        {
            if (piece == null || !this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            this.manager.Create(piece);

            return(this.Ok());
        }
Esempio n. 5
0
        public async Task Create_WorksProperly()
        {
            var service = await this.CreatePieceService(new List <Piece>());

            var expected = new PieceViewModel()
            {
                Name      = "Test",
                Performer = "Test",
                PieceType = PieceType.AlbumPiece.ToString(),
                Genre     = Genre.HipHop.ToString()
            };
            var created = service.Create(expected);

            Assert.AreEqual(created.Name, expected.Name);
        }
Esempio n. 6
0
        public async Task Create_WorksProperly()
        {
            var controller = await this.CreatePieceControllerAsync(new List <Piece>());

            var piece = new PieceViewModel()
            {
                Name      = "TestPiece",
                Genre     = Genre.Pop.ToString(),
                Performer = "Test",
                PieceType = PieceType.AlbumPiece.ToString()
            };
            var result = controller.Post(piece);

            Assert.AreEqual(typeof(OkResult), result.GetType());
        }
Esempio n. 7
0
        public async Task Update_WorksProperly()
        {
            var service = await this.CreatePieceService(new List <Piece>());

            var expected = new PieceViewModel()
            {
                Name      = "Test",
                Performer = "Test",
                PieceType = PieceType.AlbumPiece.ToString(),
                Genre     = Genre.HipHop.ToString()
            };
            var created = service.Create(expected);

            expected.Name = "TestUpdated";
            service.Update(created.Name, expected);
            Assert.NotNull(service.GetAll().Where(x => x.Name == expected.Name));
        }
Esempio n. 8
0
        private bool UpdateGameState(bool differentThread)
        {
            int            fromRow      = this.fromSquare / 8;
            int            toRow        = this.toSquare / 8;
            int            fromCol      = this.fromSquare % 8;
            int            toCol        = this.toSquare % 8;
            Point          fromPosition = new Point(fromCol, fromRow);
            Point          toPosition   = new Point(toCol, toRow);
            PieceViewModel movingPiece  = this.pieces.FirstOrDefault(piece =>
                                                                     piece.Position.X == fromPosition.X &&
                                                                     piece.Position.Y == fromPosition.Y);

            movingPiece.Position = toPosition;

            this.BindPieces(differentThread);
            return(this.IsGameOver());
        }
Esempio n. 9
0
        public ActionResult EditPiece(PieceViewModel pieces)
        {
            using (DataStoreContext db = new DataStoreContext())
            {
                var piece = db.IndividualPiece.Find(pieces.IndividualPieceId);

                if (ModelState.IsValid)
                {
                    piece.Cost  = pieces.Cost;
                    piece.Price = pieces.AskingPrice;
                    piece.Sold  = pieces.Sold;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }

                return(View(pieces));
            }
        }
Esempio n. 10
0
        public Piece Create(PieceViewModel model)
        {
            Object pieceType;
            Object Genre;

            Enum.TryParse(typeof(PieceType), model.PieceType, out pieceType);
            Enum.TryParse(typeof(Genre), model.Genre, out Genre);

            var piece = new Piece()
            {
                Name      = model.Name,
                Artist    = this.artistRepository.GetByName(model.Performer),
                PieceType = (PieceType)pieceType,
                Genre     = (Genre)Genre,
            };

            this.pieceRepository.Add(piece);

            return(piece);
        }
Esempio n. 11
0
        private void BindPieces()
        {
            this.pieces.Clear();

            for (int square = 0; square < this.chessboard.Board.Length; square++)
            {
                int            row        = square / 8;
                int            col        = square % 8;
                int            x          = (this.playerColor == Engine.Defaults.Color.White) ? col : Math.Abs(col - 7);
                int            y          = (this.playerColor == Engine.Defaults.Color.White) ? row : Math.Abs(row - 7);
                Point          position   = new Point(x, y);
                PieceViewModel pieceModel = new PieceViewModel()
                {
                    PieceType = this.chessboard.Board[square].OccupiedBy.Type,
                    Color     = this.chessboard.Board[square].OccupiedBy.Color,
                    Position  = position
                };

                this.pieces.Add(pieceModel);
            }

            this.ChessboardUI.ItemsSource = this.pieces;
        }
        private ProductivityVueModel GetVueModel(List <EfficiencyStateMachineModel> operatorActivities, MachineInfoModel machine, PeriodModel period)
        {
            var result = new ProductivityVueModel();

            if (machine.MachineTypeId == (int)enMachineType.CentroLavoro || machine.MachineTypeId == (int)enMachineType.LineaTaglio ||
                (machine.MachineTypeId == (int)enMachineType.LineaTaglioLavoro))
            {
                result.currentState = GetCurrentState(machine.Id);
            }

            var data = _pieceService.GetAggregationPieces(machine, period, enDataType.Dashboard);

            //var operatorActivities =_stateService.GetOperatorsActivity(machine, period.StartDate, period.EndDate);
            if (data.Count == 0)
            {
                return(result);
            }

            // tempo lordo: devo andare sulla tabella degli stati perchè non ce l'ho sui pezzi
            var grossTime      = operatorActivities.Sum(m => m.TotalTime);
            var netTime        = operatorActivities.Sum(m => m.ProducingTime);
            var productionTime = operatorActivities.Sum(m => m.ProducionModeTime ?? 0);
            //var grossTime = data.Select(s => s.ElapsedTime).Sum();
            var doneCount   = data.Select(s => s.CompletedCount).Sum() ?? 0;
            var redoneCount = data.Select(s => s.RedoneCount).Sum() ?? 0;

            // kpi pezzi all'ora
            var ratio = Common.GetRatioProductivity(doneCount, grossTime);

            result.kpi = CommonViewService.getKpiViewModel(ratio, machine.PiecesProductivityGreenThreshold, machine.PiecesProductivityYellowThreshold);

            // pieces
            var piece = new PieceViewModel();

            piece.total = doneCount + redoneCount;

            var done = new ProdDataModel();

            done.perc   = Common.GetPercentage(doneCount, piece.total);
            done.number = doneCount;
            piece.done  = done;

            var redone = new ProdDataModel();

            redone.perc   = Common.GetPercentage(redoneCount, piece.total);
            redone.number = redoneCount;
            piece.redone  = redone;

            result.piece = piece;

            // materials
            var dataBars = _barService.GetAggregationBar(machine, period);

            if (dataBars.Count > 0)
            {
                var    barLength    = dataBars.Select(s => s.Length ?? 0).Sum().RoundToInt();
                double cutoffLength = dataBars.Select(s => s.OffcutLength ?? 0).Sum();
                var    totalLength  = barLength + cutoffLength;

                var material = new MaterialViewModel();
                material.total = (totalLength / 1000);

                var bar = new ProdDataModel();
                bar.perc     = Common.GetPercentage(barLength, totalLength);
                bar.number   = ((double)barLength / 1000);
                material.bar = bar;

                //Nelle troncatrici questi dati sono nascosti, non ci sono,
                //per le altre è da verificare cosa prendono
                var cutoff = new ProdDataModel();
                cutoff.perc     = Common.GetPercentage(cutoffLength, totalLength);
                cutoff.number   = ((double)cutoffLength / 1000);
                material.cutoff = cutoff;

                result.material = material;
            }


            // phases
            var phases = new List <ProdDataModel>();

            switch (machine.MachineTypeId)
            {
            case (int)enMachineType.Troncatrice:
            case (int)enMachineType.LineaTaglio:
                var cut = new ProdDataModel();
                cut.text = Resource.Cut;
                cut.perc = Common.GetPercentage(netTime, grossTime);
                phases.Add(cut);
                break;

            case (int)enMachineType.CentroLavoro:
                var working = new ProdDataModel();
                working.text = Resource.Working;
                working.perc = Common.GetPercentage(productionTime, grossTime);
                phases.Add(working);
                break;

            default:
                working      = new ProdDataModel();
                working.text = Resource.Working;
                working.perc = Common.GetPercentage(data.Select(s => s.ElapsedTimeWorking ?? 0).Sum(), grossTime);
                phases.Add(working);

                var trim = new ProdDataModel();
                trim.text = Resource.Trim;
                trim.perc = Common.GetPercentage(data.Select(s => s.ElapsedTimeTrim ?? 0).Sum(), grossTime);
                phases.Add(trim);

                cut      = new ProdDataModel();
                cut.text = Resource.Cut;
                cut.perc = Common.GetPercentage(data.Select(s => s.ElapsedTimeCut ?? 0).Sum(), grossTime);
                phases.Add(cut);

                break;
            }

            result.phases = phases.OrderByDescending(o => o.perc).ToList();

            // operators
            //var dataOperators = _pieceService.GetAggregationPieces(machine, period, enDataType.Operators);

            var dataOperators = operatorActivities;

            if (dataOperators.Count > 0)
            {
                var groupOperator = dataOperators.GroupBy(g => new { g.Operator, g.TotalTime }).OrderByDescending(x => x.Key.TotalTime).ToList();

                if (groupOperator.Count <= 3)
                {
                    result.operators = groupOperator.Select(o => new ProdDataModel()
                    {
                        text = o.Key.Operator,
                        perc = Common.GetPercentage(o.Key.TotalTime ?? 0, grossTime)
                    }).OrderByDescending(p => p.perc).ToList();
                }
                else
                {
                    var firstGroup  = groupOperator.GetRange(0, 2);
                    var secondGroup = groupOperator.GetRange(2, groupOperator.Count - 2);

                    if (firstGroup.Count > 0)
                    {
                        result.operators = firstGroup.Select(o => new ProdDataModel()
                        {
                            text = o.Key.Operator,
                            perc = Common.GetPercentage(o.Key.TotalTime ?? 0, grossTime)
                        }).OrderByDescending(p => p.perc).ToList();
                    }

                    if (secondGroup.Count > 0)
                    {
                        var elpasedTimeTotal = secondGroup.Select(s => s.Key.TotalTime ?? 0).Sum();

                        result.operators.Add(new ProdDataModel()
                        {
                            text = Resource.Others,
                            perc = Common.GetPercentage(elpasedTimeTotal, grossTime)
                        });
                    }
                }
            }

            // gross time
            result.time = CommonViewService.getTimeViewModel(grossTime);

            return(result);
        }
Esempio n. 13
0
 public void Update(string id, PieceViewModel piece)
 {
     this.pieceRepository.HardDelete(this.pieceRepository.GetByName(id));
     this.Create(piece);
 }