public Result SaveMaintenanceCompany(MaintenanceCompany editMaintenanceCompany)
        {
            Result output = new Result();

            output.Status = ResultStatus.BadRequest;

            using (var ctx = new EWUSDbContext())
            {
                MaintenanceCompany maintenanceCompany = null;
                if (editMaintenanceCompany.Id > 0)
                {
                    maintenanceCompany = ctx.MaintenanceCompanies.Where(x => x.Id == editMaintenanceCompany.Id)
                                         .FirstOrDefault();
                }
                else
                {
                    maintenanceCompany = new MaintenanceCompany();
                }

                maintenanceCompany.Name  = editMaintenanceCompany.Name;
                maintenanceCompany.Email = editMaintenanceCompany.Email;

                if (maintenanceCompany.Id == 0)
                {
                    ctx.MaintenanceCompanies.Add(maintenanceCompany);
                }

                ctx.SaveChanges();

                output       = Result.ToResult <MaintenanceCompany>(ResultStatus.OK, typeof(MaintenanceCompany));
                output.Value = maintenanceCompany;
            }
            return(output);
        }
        public MaintenanceCompany GetMaintenanceCompanyById(long Id)
        {
            using (var context = new EWUSDbContext())
            {
                MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
                InvolvedParty      ip = context.InvolvedPartys.Where(x => x.Id == Id)
                                        .FirstOrDefault();

                maintenanceCompany = (MaintenanceCompany)ip;

                if (maintenanceCompany != null)
                {
                    return(maintenanceCompany);
                }
                return(null);
            }
        }
        public Result DeleteMaintenanceCompanyById(long Id)
        {
            Result output = new Result();

            output.Status = ResultStatus.BadRequest;

            try
            {
                using (var ctx = new EWUSDbContext())
                {
                    MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
                    InvolvedParty      ip = ctx.InvolvedPartys.Where(x => x.Id == Id)
                                            .FirstOrDefault();

                    maintenanceCompany = (MaintenanceCompany)ip;

                    try
                    {
                        ctx.InvolvedPartys.Remove(maintenanceCompany);

                        ctx.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        if (ex.HResult == -2146233087)
                        {
                            output.ExceptionMessage = Constants.ErrorMessageReferentialIntegrity;
                            output.Status           = ResultStatus.Forbidden;
                        }
                        else
                        {
                            output.ExceptionMessage = "Exception could not be performed !!!";
                            output.Status           = ResultStatus.InternalServerError;
                        }
                    }
                }
                output.Status = ResultStatus.OK;
            }
            catch
            {
                output.Status = ResultStatus.InternalServerError;
            }

            return(output);
        }
        public ActionResult SaveMaintenanceCompany(MaintenanceCompanyViewModel model)
        {
            MaintenanceCompany maintenanceCompany = new MaintenanceCompany();

            maintenanceCompany = Mapper.Map <MaintenanceCompanyViewModel, MaintenanceCompany>(model);

            var partyRepo = new PartyRepository();
            var item      = partyRepo.SaveMaintenanceCompany(maintenanceCompany);

            if (item.Success)
            {
                return(Json(item.Value));
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "An error has occured !!!"));
            }
        }
        public ActionResult EditMaintenanceCompany(string key)
        {
            var partyRepo = new PartyRepository();
            MaintenanceCompany maintenanceCompany = partyRepo.GetMaintenanceCompanyById(key.ToLong(0));

            ViewBag.Input = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(maintenanceCompany)));

            ViewBag.Id       = key.ToLong(0);
            ViewBag.Title    = "Bearbeiten Wartungsfirma";
            ViewBag.TypeName = "MaintenanceCompany";
            if (Request.IsAjaxRequest())
            {
                ViewBag.IsPopup = true;
                return(PartialView("MaintenanceCompany"));
            }
            else
            {
                ViewBag.IsPopup = false;
                return(View("MaintenanceCompany"));
            }
        }